A PDF fájlok automatikus létrehozása az egyik legfontosabb eleme a webáruházaknak. Miért épp a webáruházakat hozom fel példaként? Mert ott tudom bemutatni a legéletszerűbb felhasználási módokat a PDF-ek generálására. Először is nézzünk pár példát, mire használható.
Üzemeltetői oldalról az egyik legpraktikusabb felhasználási mód a rendelésösszesítő, a beérkezett termékeket, a vásárló adatait és vásárlás részleteit egy fejlécezett, esztétikus kinézetű PDF-be mentheted ki, melyet akár elküldhetsz a vásárlónak is.
Jelentéseket készíthetsz, árlistákat menthetsz ki, szállítólevelet generálhatsz, termékadatlapot teheted letölthetővé, díjbekérőt állíthatsz ki. A lehetőségek száma közel végtelen, mellyel a saját és a vásárlóid életét is könnyebbé teheted.
Az FPDF egy PHP osztály, mellyel egyszerűen generálható PDF fájl PHP-ból. A fő előnye,
hogy nincs szüksége külső bővítményekre (kivéve a Zlib
et, ha engedélyezni akarod a tömörítést,
és a GD
-t a GIFek támogatásához), és már PHP 5.1-től futtatható. A nevében az F
a FREE szóra
utal, szóval szabadon felhasználható és módosítható az igényeidnek megfelelően.
Fő tulajdonságai:
Az FPDF letölthető az fpdf.org oldalról.
Az mPDF az FPDF-re, HTML2FPDF-re és az UPDF-re épül, kibővítve azok tudását.
Az FPDF-hez képest a legnagyobb előnye, hogy támogatja az UTF-8 kódolású HTML-t.
Használatához a PHP mbstring
és gd
bővítményeire van szükség, de kellhet a zlib
a kimenet és a beágyazott fontok tömörítéséhez, a bcmath
a vonalkódokhoz és az
xml
a karakterkódoláshoz és az SVG-k kezeléséhez.
Fő tulajdonságai:
RTL
(arab, héber) és a CJK
(kínai, japán, koreai) nyelveket isP
, DIV
), margóval, kerettel, háttérszínnel, sormagassággal, stb.float
és fixed
blokk elemeket isA legújabb mPDF leírása megtalálható az mpdf.github.io oldalon, a forráskód pedig a githubon érhető el. Javasolt Composerrel telepíteni, jelenleg támogatott PHP verzió >=5.6 és <7.3
A DOMPDF kifejezetten HTML kódból PDF generálására használható. Közel teljesen támogatja a CSS 2.1 stílusokat,
melyeket akár külső forrásból le is tud tölteni, használhatunk inline CSS-t és külön formázhatjuk
a HTML elemeket a style
attribútummal is. Használatához szükség lesz az mbstring
bővítményre, a DOM
bővítményre (mely be van építve PHP 5-től a PHP forrásába),
emellett jól jöhet néhány font is, a PDF alapból támogatja a Helvetica, Times-Roman, Courier és Zapf-Dingbat fontokat,
de saját betűtípusokat is telepíthetsz.
Fő tulajdonságai:
@import
, @media
és @page
szabályokat isA DOMPDF leírása megtalálható a dompdf.github.io oldalon, a forráskód pedig a githubon érhető el. A futtatásához legalább PHP 5.4 szükséges.
A Snappy egy PHP 5 könyvtár, mellyel előnézeti képet, képernyőképet vagy PDF-et hozhatunk létre külső URL-ből vagy HTML kódból.
A webkit
alapú wkhtmltopdf és wkhtmltoimage könyvtárakat használja, melyek elérhetők OSX-en, Windowson és Linuxon is.
A wkhtmltopdf
és wkhtmltoimage
nyíltforrású parancssori eszközök, melyek segítségével HTML kódot tudsz konvertálni
több különböző képformátumra a Qt WebKit motort használva. Ennek segítségével úgynevezett "headless"
módban fut,
így nincs szüksége semmilyen kimeneti eszközre, így monitorra sem, ezzel könnyen futtatható bármilyen konzolos környezetben.
Composer függőségként is telepíthető a wkhtmltopdf
, így dinamikusan tudsz hivatkozni rá a projectekben.
A Snappy leírása és forráskódja megtalálható a githubon, a wkhtmltopdf és wkhtmltoimage "dokumentációja" a wkhtmltopdf.org oldalon és a forráskódja githubon.
A TCPDF talán az egyik legsokoldalúbb PHP alapú PDF generátor. Támogatja az Unicode fontokat, szerintem az egyik legjobban dokumentált könyvtár, rengeteg példával.
Fő tulajdonságai:
zlib
bővítménnyel)És még sok más. A TCPDF dokumentációja és a mintakódok megtalálható a tcpdf.org oldalon és a forráskód githubon
A TCPDF-et tettem az első helyre, mert szerintem könnyen kezelhető és testreszabható. Az első helyet szívem szerint
a Snappynek adnám a wkhtmltopdf
miatt, de objektíven nézve, nem mindenkinek van lehetősége, hogy bármit is telepítsen a szerverre
vagy tárhelyre, amit használ. Emiatt kapta az első helyet a TCPDF, csak include
-olod és használod.
Természetesen az erőforrásigénye is a TCPDF-nek a legnagyobb, mivel minden folyamatot PHP-ban oldottak meg, emiatt nincs szüksége külső könyvtárakra vagy alkalmazásokra. A legtöbb feladatot, mely PDF generálást igényel a projectedben, el fogja látni.
Ha nem akarsz sokat szenvedni, akkor használhatsz erre online eszközöket is, ilyen például a GrabzIt, ami egy API-n keresztül legenerálja neked a PDF-et. Természetesen a legtöbb ilyen eszköz fizetős, de megmenthet egy kis kódolástól. Ezt a lehetőséget csak azért ajánlom, mert tudom, hogy vannak, akik a könnyebb utat választják. A csomagokat itt találod a funkciókkal és korlátozásokkal együtt. Az API használatát pedig itt és itt tudod megnézni.