Soluții - PC Magazine Romania, Iulie 2004
PDF din PHP
Cantemir Mihu
Motivul pentru care PHP a cunoscut o răspândire așa de puternică se datorează
mai multor cauze. Una dintre ele este rapida adaptare la tehnologii noi, extensibilitatea
nativă, care îi ajută pe programatori să adauge module noi nucleului. În plus,
larga comunitate de programatori se află într-o continuă luptă pentru integrarea
și suportul noilor "invenții" în materie de programare web. Prin extensiile
existente astăzi, limbajul PHP oferă suport pentru acces la baze de date, pentru
compresie, manipulare conținut XML, acces la servicii de tip IMAP sau POP3,
crearea de aplicații de tip window (PHP-GTK), funcții destinate plăților online
prin diferite sisteme, generare de imagini sau animații flash.
Cu toate că aceste facilități nu sunt incluse în modul nucleu, ele sunt disponibile
fie ca extensii compilate, fie ca librării de funcții în pachete speciale. Scopul
articolului este de a prezenta variantele disponibile pentru generarea fișierelor
PDF, fișiere destinate schimbului electronic sigur și de încredere a documentelor,
a căror conținut trebuie să apară în exact același mod pe orice fel de calculator.
Programul necesar vizualizării documentelor PDF precum și informațiile de referință
ale structurii fișierelor PDF se găsesc la www.adobe.com
Datorită publicării formatului fișierelor, firma Adobe a deschis drumul folosirii
pe scară largă a acestora. Din această cauză și în limbajul PHP a fost ușoară
integrarea suportului pentru PDF, existând la ora actuală mai multe implementări.
PDFLib - www.pdflib.com
Prima variantă, și probabil cea mai folosită este PDFLib, creată de o firmă
din Germania. PDFLib este disponibilă gratuit pentru teste, dar pentru uz comercial
este necesară o licență. PDFLib este o librărie compilată, distribuită în mod
binar, cu suport pentru diverse limbaje de programare (C, C++, Java, .NET, PHP,
TCL, python). Împreună cu PHP, librăria poate fi folosită în două feluri: printr-un
modul dinamic sau prin recompilarea și includerea statică în executabilul PHP.
Evident, a doua variantă este mai dificilă și necesită experiență din partea
utilizatorului, dar necesară dacă sistemul nu suportă librării dinamice. Odată
instalate, funcțiile API pentru prelucrare PDF vor putea fi direct apelate din
cadrul unui script PHP, la fel ca orice altă funcție PHP. Cel mai mare avantaj
al acestei librării îl reprezintă probabil viteza de generare, implicată de
faptul că librăria în sine este compilată și nu interpretată, ca în cazul altor
variante de generare PDF. Aceasta o face singura opțiune posibilă în cazul aplicațiilor
cu mulți utilizatori, unde viteza, performanța și stabilitatea sunt critice.
PDFLib, în varianta completă cu PDI asigură suport pentru prelucrare a unor
PDF-uri existente, facilitate rar întâlnită la alte produse de același fel.
Creatorii PDFLib au introdus chiar un concept nou, cel al zonelor de date (PDFLib
blocks), a căror conținut poate fi completat dinamic. Aceste zone sunt asemănătoare,
dar superioare cu formele și câmpurile existente în fișierele PDF.
YaPS - www.interakt.ro
Sistemul YaPS face parte din grupul de programe cu licență GPL al firmei Interakt.
YaPS este deci Open Source și creat special pentru generare de documente PostScript
și PDF. Librăria este scrisă cu funcții native PHP, dar pentru conversia din
PS în PDF este necesar utilitarul GhostScript (www.ghostscript.com).
YaPS este o alternativă bazată atât pe cod interpretat, cât și pe cod compilat.
Pe lângă YaPS, firma Interakt a creat un utilitar special pentru generare rapoarte,
datele provenind din diverse baze de date suportate. Utilitarul se numește PDFreports,
iar varianta sa Open Source se numește PDFreportsLite. PDFreports și PDFreportsLite
au ca nucleu de bază sistemul YaPS, dar sunt specializate pe procesarea de documente
XML, cu scopul predefinit de a genera rapoarte din baze de date.
FPDF - www.fpdf.org
FPDF este o clasă scrisă complet în PHP. Conceptul din spatele acestei clase
este evident simplitatea în folosire, tot ce trebuie pentru a o folosi fiind
incluziunea unui singur fișier sursă PHP. Pe lângă faptul că FPDF este complet
gratuit și Open Source, pe situl fpdf.org se găsesc diverse exemple și scripturi
utilitare, manuale în diferite limbi, inclusiv română, precum și un tutorial
foarte concludent. FPDF nu necesită nimic suplimentar pentru a funcționa, este
scris complet în PHP nativ și este probabil opțiunea cea mai bună pentru un
mediu nepretențios în care simplitatea este de preferat vitezei. Dezavantajele
sunt evidente însă. Fiind complet interpretată, metoda de generare este mult
inferioară ca viteză uneia similare compilate, iar facilitățile oferite sunt
mult inferioare unui sistem mai avansat precum PDFLib. Lipsește de asemenea
suportul pentru prelucrarea unor PDF-uri existente. API-ul, mult ușurat față
de cel al PDFLib prin încapsulare într-o clasă, este gândit astfel încât generarea
unui PDF să se bazeze mai mult pe moștenire decât pe apel de funcții.
|