Skapa pdf -rapporter från PHP- och FPDF -biblioteket

Innehållsförteckning
Vi börjar med att ladda ner biblioteket från www.fpdf.org, när vi har laddat ner packar vi upp och kopierar fpdf -katalogen till katalogen för vår applikation.
Ett enkelt exempel:
 AddPage (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Cell (80, 10, 'This is a 40 x 10 cell', 1); $ pdf-> Cell (50, 10, '50x10 Cell', 1); $ pdf-> Ln (10); $ pdf-> SetFont ('Arial', 'I', 12); $ pdf-> Cell (80, 10, 'This is a 40 x 10 cell', 0); $ pdf-> Cell (50, 10, '50x10 Cell', 0); $ pdf-> Output (); ?> var13 -> 

Vi ringer biblioteket från fpdf -katalogen, skapar ett objekt och lägger till en sida med AddPage (), anger teckensnitt, stil och storlek. Sedan skapar vi en cell för att innehålla data med följande struktur

$ pdf-> Cell (bredd, höjd, innehåll, kant, inriktning); // Justering L Vänster, C centrerad, R Höger

Resultatet av den tidigare koden i pdf blir:
Output -funktionen är den som visar pdf -filen om vi sätter parametern Jag skickar filen till webbläsaren, om vi lägger parametern D visa nedladdningsfönstret, därför om vi skriver i föregående kod
$ pdf-> Utmatning ('mipdf.pdf', 'd');

Som ett resultat visas nedladdningsfönstret för att spara pdf -filen.
Vi kan också göra mer komplexa dokument som fakturor, uppskattningar eller kommersiella rapporter, använda databaser som mysql.
I följande exempel kommer vi att se hur man skapar en budget med en rubrikbild

 AddPage (); $ pdf-> SetFont ('Arial', 'B', 16); // Jag sätter in rubriken och lägger in en bild i en cell $ pdf-> Cell (700,85, $ pdf-> Image ('./ images/ logo-invoice.jpg.webp', 30,12,160), 0,0, ' C '); $ pdf-> Cell (100,12, "Budget:". $ fielddb ['nrobudget']); $ pdf-> Cell (100,12, "Datum:". datum ('d / m / Y')); $ pdf-> Line (35,40,190,40); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Namn:". $ dbfield ['namn'])); $ pdf-> Cell (90.12, "Nif:". $ rowcli ['nif']); $ pdf-> Linje (35,48,190,48); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Adress:". $ dbfield ['adress']); $ pdf-> Linje (35,56,190,56); $ pdf-> Ln (7); $ pdf-> Cell (90.12, accenter ("Telefon:". $ fielddb ['telefon'])); $ pdf-> Line (35,62,190,62); $ pdf-> Ln (7); $ pdf-> Cell (100,12, "Dator:". $ fielddb ['dator']); $ pdf-> Line (35,68,190,68); $ pdf-> Ln (9); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> Cell (60.12, 'BUDGET'); $ pdf-> Ln (2); $ pdf-> SetFont ('Arial', '', 8); ?> var13 -> 

Sedan genererar jag genom en fråga till databasen plus en stundslinga de andra cellerna och beräknar beloppen.
 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']; } ?> 

Sedan skapar vi de återstående cellerna för totalen, momsen och skatterna efter behov
 Ln (7); $ pdf-> Cell (110,7); $ pdf-> Cell (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, "Obs:". $ rowrepar ['notapresu']); ?> var13 -> 

Vi lägger också till en multicell, som fyller flera cellers funktion i en, och fungerar för stora textblock som en fotnot
Slutligen ger vi ett namn till vår fil, som vi kan lägga till ett id som kommer att räkna upp dem enligt en databas och vi definierar nedladdningsalternativet.
 Utmatning ($ fil, "D"); ?> var13 -> 

En annan intressant applikation är att kombinera fpdf med klasser för att generera streckkoder med I25, EAN 39, 128, etc. På fpdf -webbplatsen finns några exempel och andra skript från communityn för testning. Här är ett exempel på en betalningsstubbe som kunder laddar ner från en webbplats.

Ett mycket vanligt problem som detta bibliotek vanligtvis ger är att inte respektera accenter, vi kan lösa det med en funktion och sedan granska varje text i innehållet.
 

På detta sätt sparar vi FPDF -problemet och accenter.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave