Pe langa date de tip text sau imagini, cu PHP puteti crea si documente in format PDF (care pot fi citite cu Adobe Acrobat Reader), utile in special cand se doreste scoaterea la imprimanta a paginilor.
Pentru crearea documentelor de tip PDF pot fi utilizate functii care folosesc libraria PDFlib. Pentru a folosi functiile specifice acestei librarii trebuie sa aveti PDFlib instalat si activat in modulul PHP. Incepand cu versiunea PHP 5 si PDFlib 6 functiile acesteia sunt apelate ca metodele unei clase. Pe langa faptul ca unele sisteme nu au instalata sau activata aceasta librarie de functii, trebuie sa tineti cont la scrierea programului si de versiunile PHP si PDFlib pe care le folositi, acest lucru poate fi mai dificil pentru incepatori. Totusi, daca sunteti interesati gasiti documentatia pentru crearea documentelor PDF cu PDFlib la pagina creare PDF cu PHP si PDFlib.
O alta modalitate mai simpla de a crea documente PDF cu PHP este folosirea unei clase numite FDPF. Avantajul este ca aceasta clasa nu necesita instalarea PDFlib si este gratuita. Aveti nevoie doar de fisierul PHP care contine clasa FPDF si un director cu fonturile pe care le puteti folosi in documentul PDF, acestea le puteti descarca de pe site-ul oficial:
- www.fpdf.org.
Aceasta lectie are doua parti, in prima parte, aici, voi explica lucrile de baza (pentru incepatori) in crearea documente PDF folosind class FPDF, iar in partea a doua sunt prezentate cateva metode mai avansate.
Primul pas e sa copiati pe server fisierul PHP cu clasa FPDF si directorul cu fonturile, apoi in fisierul dv. php includeti aceasta clasa dupa care urmeaza datele necesare creari documentului PDF.
Aceste date trebuie sa fie in principal urmatoarele:
Pe langa text simplu, puteti adauga si celule (cadre) in care sa fie adaugat textul. Aceste celule le puteti crea cu metoda Cell(); sunt similare cu DIV-ul din HTML, le putem defini suprafata, fondul, bordura sau alinierea datelor.
Iata un exemplu care va crea o pagina PDF in care avem o celula cu un text centrat in ea.
In urmatorul exemplu puteti vedea cum sa adaugati o linie noua in pagina, sa setati o culoare pentru text si pt. fondul unei celule si sa definiti culoarea si grosimea bordurii celulei.
Pentru a adauga o linie noua intr-o pagina PDF construita cu clasa FPDF se apeleaza metoda Ln(), aceasta poate prelua un argument numeric ce reprezinta inaltimea noii linii.
Pentru definirea unei culori pentru text se foloseste metoda SetTextColor(), aceasta preia 3 argumente numerice cu valoarea intre 0 si 255 reprezentand culorile RGB (Red, Green, Blue). Similar, pentru culoarea de fundal (background) se foloseste metoda SetFillColor() cu cele 3 argumente reprezentand culorile RGB, iar pentru culoarea bordurii se foloseste metoda SetDrawColor().
Grosimea liniei se poate defini cu metoda SetLineWidth(nr), unde "nr" e un numar ce reprezinta grosimea in unitatea de masura data, de obicei milimetri. Daca aceasta metoda nu e specificata, grosimea liniei este 0.2 mm.
Iata un exemplu care va crea o pagina PDF cu 2 linii de text (a doua cu text albastru) si o alta linie in care avem o celula cu fond galben, bordura definita si text verde.
• Paragraf
In exemplele de sus ati vazut cum puteti adauga text (pe o linie) folosind metoda "Text()", totusi, aceasta metoda este utila in cazul sirurilor mai mici, pe o singura linie, dar sunt situatii cand trebuie sa adaugati in pagina PDF un continut de text mai mare si care are mai multe linii. In acest caz folositi metoda write(), aceasta permite adaugarea de continut text cu mai multe linii (formate cu "\n") sau cand testul ajunge la marginea din dreapta trece automat pe o noua linie. Sintaxa generala a acestei metode este:
Write(h, continut_text, url)
- unde "h" este inalimea fiecarei linii din paragraf, "continut_text" este textul adaugat, iar "url" (optional) este o adresa URL care poate fi deschisa cand se da click pe continut_text.
• Linie
Clasa FPDF are si o metoda pe care o puteti folosi pentru trasarea de linii in pagina, aceasta este metoda line() si are urmatoarea sintaxa:
Line(x1, y1, x2, y2)
- unde "x1" si "y1" sunt coordonatele X si Y pentru punctul de inceput a liniei, iar "x2" si "y2" sunt coordonatele X si Y pentru punctul de sfarsit a liniei
• Imagine
Pe langa date de tip text sau linii, in pagiina PDF puteti adauga cu FPDF si imagini JPEG, PNG sau GIF; pentru aceasta se foloseste metoda Image() care are urmatoarea sintaxa:
Image(src, x, y, w, h, tip, url)
- unde "src" este adresa imaginii, aceasta este singura strict necesara, restul sunt optionale.
- "x" si "y" sunt coordonatele X si Y pentru coltul din stanga-sus de unde incepe afisarea imaginii, daca nu sunt specificate se folosesc coordonatele curente.
- "w" si "h" reprezinta dimensiunile (lungime, inaltime) in care va fi afisata imaginea in pagina, daca nu sunt specificate se folosesc dimensiunile imaginii.
- "tip" este tipul imaginii (JPG, JPEG, PNG sau GIF), daca nu e adaugat se preia din extensia acesteia, iar "url" este o adresa URL care poate fi deschisa la click pe imaginea respectiva.
• Link
Sunt mai multe metode, simple sau mai complexe, de a adauga un link in pagina PDF. Aici veti vedea doua metode simple, pentru ceva mai complicat studiati tutorialul din documentatia FPDF.
Cea mai simpla metoda e sa scrieti direct adresa URL in continutul textului (vedeti in exemplul de jos), in pagina va apare adresa asa cum ati scris-o iar cand se da click pe ea deschide acea adresa.
O alta metoda pe care o puteti folosi e sa adaugati adresa in atributul URL a uneia din metodele: Cell(), Write() sau Image().
Codul din urmatorul exemplu va afisa o pagina PDF in care este un continut text pe mai multe linii care are si o adresa URL, urmat de un link intr-o celula, doua linii si o imagine.
Atentie, cand doriti sa adaugati in metode atribute care, in ordine, sunt dupa altele optionale pe care nu doriti sa le folositi, trebuie totusi sa le adaugati si pe acestea (cu valoare nula "" sau false).
De exempu, in scriptul de mai sus am vrut sa adaug o adresa URL in metoda "Cell()", care este ultimul atribut, inaintea acestuia fiind atributul pt. background. Desi nu am folosit o culoare pt. background, am adaugat acest atribut ca "false" ca sa fie respectata ordinea atributelor recunoscute de clasa.
<input type="checkbox" name="a_name" value="value" checked="checked" />
#id { background:url("path_to_image.png"); background-size:contain; background-repeat:no-repeat; }
var rest8_7 = 8 % 7; alert(rest8_7);
$nr = ceil(3.5); echo $nr; // 4
Alex wants to buy a bike. - Alex vrea sa cumpere o bicicleta.
LeĆ unos libros. - Am citit niste carti.