Generera PDF-dokument med PHP

PDF-dokument har en väsentlig fördel framför exempelvis HTML, och det är att dokumenten ser likadant ut oavsett vilken läsare eller dator du användare för att öppna det på. Även om HTML strävar efter samma sak så är det tyvärr långt ifrån i praktiken. Detta gör att PDF-dokument lämpar sig väldigt bra till dokument som kanske anses ”för viktiga” för att endast visas i HTML. Ett exempel skulle kunna vara fakturor, rapporter eller andra viktiga genererade dokument.

Jag har själv använt mig av ett egenutvecklat script för att generera fakturor till PDF på automatik från PHP. Jag har använt mig av biblioteket PDFlib, men efter en ominstallation av Apache/PHP märkte jag att alla mina fakturor fick en exempeltext tvärs över hela dokumentet. Detta på grund av att jag inte har någon licens. Eftersom jag anser att licenserna är orimligt dyra så letade jag upp ett annat alternativ till PDFlib. PHP Pdf creation heter lösningen på mitt problem. Den stödjer fler funktioner än vad som fanns i PDFlib Lite som jag tror jag använde tidigare, och mycket mindre kod för att generera samma dokument som tidigare. En annan fördel är att PHP Pdf creation är endast en klass och inte en tillbyggnad till PHP som PDFlib är, vilket resulterar i att du behöver inte aktivera ‘extension’ för PDFlib i PHP.ini.

Efter drygt 2 timmars arbete har jag nu bytt från PDFlib till PHP Pdf creation. Det är inte speciellt svårt att jobba med PDF-dokument från PHP och jag rekommenderar det om ni har en tjänst/verktyg där det skulle kunna passa in. Exempelvis så är detta all kod ni behöver för ett ”Hello World”-dokument:

// Inkludera klass-filen 
include ‘class.pdf.php’;
// Skapa ett nytt objekt
$pdf = new Cpdf();
// Välj font och skriv ut ”Hello Word” med text-storlek 30
$pdf->selectFont(‘./fonts/Helvetica’);
$pdf->addText(30,400,30,’Hello World’);

// Skicka PDF-dokumentet till webbläsaren
$pdf->stream();



6 Kommentarer to “Generera PDF-dokument med PHP”

  1. Kim skriver:

    Jag har letat ett bibliotek som klarar av att göra om html till pdf. Det finns inte antar jag?

  2. Fredrik Eriksson skriver:

    Jag vet att det finns webbtjänster som erbjuder det, men problemet är att HTML i många fall är en tolkningsfråga hur det ska presenteras medan PDF är absolut och ser där med exakt lika dant ut i alla läsare, oavsett om användaren har egna inställningar på grund av synfel etc.

    Ett krav för detta är att typsnittet levereras med dokumentet, och det är inbakat i alla PDF-dokument, precis som allt annat som krävs.

    Att då försöka konvertera HTML till PDF kan sluta i ett helt okej resultat men också i katastrof. Därför är det nog bäst att istället försöka bygga PDF-dokumentet med PHP direkt. Jobbigare men med ett bättre resultat.

  3. Kim skriver:

    Jag sitter ganska mycket med linux och jag märker ganska ofta att PDF’er ser annorlunda ut beroende på operativsystem. Jag antar att detta beror på att typsnittet inte är inbakat precis som du sa?

  4. Fredrik Eriksson skriver:

    Hela meningen med PDF är att de inte borde se anorlunda ut 🙂 Jag vet inte om det alltid ska ingå typsnitt i dokumentet, men annars skulle det kunna vara en orsak. Men det är svårt att säga.

  5. Mikael skriver:

    Hej!
    Kan du inte lägga upp koden för din faktura?
    Kanske sälja den som template eller något? =)

  6. Henrik skriver:

    Har någon koll på varför jag inte får rätt tecken för åäö när jag skapar pdf?

Lämna en Kommentar

Läs riktlinjerna för kommentering innan du skriver.