Creați rapoarte pdf din biblioteca PHP și FPDF

Cuprins
Începem prin descărcarea bibliotecii de pe www.fpdf.org, odată descărcată dezarhivăm și copiem directorul fpdf în directorul aplicației noastre.
Un exemplu simplu:
 Adauga pagina (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Cell (80, 10, „Aceasta este o celulă de 40 x 10”, 1); $ pdf-> Cell (50, 10, '50x10 Cell', 1); $ pdf-> Ln (10); $ pdf-> SetFont ('Arial', 'I', 12); $ pdf-> Cell (80, 10, „Aceasta este o celulă de 40 x 10”, 0); $ pdf-> Cell (50, 10, '50x10 Cell', 0); $ pdf-> Ieșire (); ?> var13 -> 

Apelăm biblioteca din directorul fpdf, creăm un obiect și adăugăm o pagină cu AddPage (), setăm fontul, stilul și dimensiunea. Apoi creăm o celulă pentru a conține date cu următoarea structură

$ pdf-> Celulă (lățime, înălțime, conținut, margine, aliniere); // Aliniere L Stânga, C Centrat, R Dreapta

Rezultatul codului anterior în pdf va fi:
Funcția de ieșire este cea care arată pdf-ul dacă punem parametrul Voi trimite fișierul la browser, dacă punem parametrul D afișează fereastra de descărcare, prin urmare, dacă în codul anterior scriem
$ pdf-> Ieșire ('mipdf.pdf', 'd');

Ca urmare, fereastra de descărcare va apărea pentru a salva fișierul pdf.
De asemenea, putem realiza documente mai complexe, cum ar fi facturi, estimări sau rapoarte comerciale, putem folosi baze de date precum mysql.
În exemplul următor vom vedea cum să creăm un buget cu o imagine de antet

 Adauga pagina (); $ pdf-> SetFont ('Arial', 'B', 16); // Inserez antetul punând o imagine în interiorul unei celule $ pdf-> Cell (700,85, $ pdf-> Image ('./ images / logo-invoice.jpg.webp', 30,12,160), 0,0, ' C '); $ pdf-> Cell (100,12, "Buget:". $ fielddb ['nrobudget']); $ pdf-> Celulă (100,12, "Data:". data ('d / m / Y')); $ pdf-> Linie (35,40,190,40); $ pdf-> Ln (7); $ pdf-> Celulă (100,12, "Nume:". $ dbfield ['nume'])); $ pdf-> Cell (90.12, "Nif:". $ rowcli ['nif']); $ pdf-> Linie (35,48,190,48); $ pdf-> Ln (7); $ pdf-> Celulă (100,12, "Adresă:". $ dbfield ['adresa']); $ pdf-> Linie (35,56,190,56); $ pdf-> Ln (7); $ pdf-> Cell (90.12, accente ("Telefon:". $ fielddb ['telefon'])); $ pdf-> Linie (35,62,190,62); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Computer:". $ fielddb ['computer']); $ pdf-> Linie (35,68,190,68); $ pdf-> Ln (9); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> Cell (60.12, „BUGET”); $ pdf-> Ln (2); $ pdf-> SetFont ('Arial', '', 8); ?> var13 -> 

Apoi, printr-o interogare către baza de date plus o buclă de timp, generez celelalte celule și calculez sumele.
 Cell(139,7,acentos($campodb['concepto']),1,0,'1'); [/indent] [indent=1]$pdf->Cell(15,7,chr(128)." ".number_format($campodb['precio'],2,'.',''),1,0,'R'); [/indent] [indent=1]//calculo el total[/indent] $precio=$precio+$campodb['precio']; } ?> 

Apoi creăm celulele rămase pentru totaluri, TVA și taxe, după caz
 Ln (7); $ pdf-> Celulă (110.7); $ pdf-> Celulă (29.8, "TOTAL", 1.0, "R"); $ pdf-> Cell (15,8, chr (128). "" .number_format ($ priceconiva, 2, '.', ''), 1,0, 'R'); $ pdf-> Ln (20); $ pdf-> Multicell (400,4, "Notă:". $ rowrepar ['notapresu']); ?> var13 -> 

De asemenea, adăugăm o multicelula, care îndeplinește funcția mai multor celule într-una, care servește pentru blocuri mari de text, cum ar fi o notă de subsol
În cele din urmă, dăm un nume fișierului nostru, căruia îi putem pune un id care să le enumereze conform unei baze de date și definim opțiunea de descărcare.
 Ieșire ($ fișier, "D"); ?> var13 -> 

O altă aplicație interesantă este combinarea fpdf cu clase pentru a genera coduri de bare cu I25, EAN 39, 128 etc. Pe site-ul web fpdf există câteva exemple și alte scripturi furnizate de comunitate pentru testare. Iată un exemplu de plată pe care clienții o descarcă de pe un site web.

O problemă foarte comună pe care această bibliotecă o oferă de obicei nu este respectarea accentelor, putem rezolva asta cu o funcție și apoi să examinăm fiecare text al conținutului.
 

În acest fel vom salva problema și accentele FPDF.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave