Twórz raporty pdf z biblioteki PHP i FPDF

Spisie treści
Zaczynamy od pobrania biblioteki ze strony www.fpdf.org, po pobraniu rozpakowujemy i kopiujemy katalog fpdf do katalogu naszej aplikacji.
Prosty przykład:
 Dodaj stronę (); $ pdf-> SetFont ('Arial', 'B', 16); $ pdf-> Cell (80, 10, 'To jest komórka 40 x 10', 1); $ pdf-> Komórka (50, 10, '50x10 Komórka', 1); $ pdf-> Ln (10); $ pdf-> SetFont ('Arial', 'I', 12); $ pdf-> Komórka (80, 10, 'To jest komórka 40 x 10', 0); $ pdf-> Komórka (50, 10, '50x10 Komórka', 0); $ pdf-> Wyjście (); ?> zm13 -> 

Wywołujemy bibliotekę z katalogu fpdf, tworzymy obiekt i dodajemy stronę za pomocą AddPage(), ustawiamy czcionkę, styl i rozmiar. Następnie tworzymy komórkę zawierającą dane o następującej strukturze

$ pdf-> Komórka (szerokość, wysokość, zawartość, obramowanie, wyrównanie); // Wyrównanie L Lewo, C Wyśrodkowany, R Prawo

Wynikiem poprzedniego kodu w pdf będzie:
Funkcja Output to ta, która pokazuje pdf jeśli wstawimy parametr to wyślę plik do przeglądarki, jeśli wstawimy parametr D pokaż okno pobierania, więc jeśli w poprzednim kodzie piszemy
$ pdf-> Wyjście ('mipdf.pdf', 'd');

W rezultacie pojawi się okno pobierania, aby zapisać plik pdf.
Możemy również tworzyć bardziej złożone dokumenty takie jak faktury, kosztorysy czy raporty handlowe, korzystać z baz danych takich jak mysql.
W poniższym przykładzie zobaczymy, jak stworzyć budżet z obrazem w nagłówku

 Dodaj stronę (); $ pdf-> SetFont ('Arial', 'B', 16); // Wstawiam nagłówek umieszczając obrazek w komórce $pdf-> Cell (700,85, $pdf-> Image ('./ images / logo-invoice.jpg.webp', 30,12,160), 0,0, ' C '); $ pdf-> Komórka (100,12, "Budżet:". $fielddb ['nrobudget']); $ pdf-> Komórka (100,12, "Data:". data ('d / m / Y')); $ pdf-> Linia (35,40,190,40); $pdf->Ln (7); $ pdf-> Komórka (100,12, "Nazwa:". $ dbfield ['nazwa'])); $pdf-> Komórka (90.12, "Nif:". $rowcli ['nif']); $ pdf-> Linia (35,48,190,48); $pdf->Ln (7); $ pdf-> Komórka (100,12, "Adres:". $ dbfield ['adres']); $ pdf-> Linia (35.56.190.56); $pdf->Ln (7); $ pdf-> Komórka (90.12, akcenty ("Telefon:". $fielddb ['telefon'])); $ pdf-> Linia (35,62,190,62); $pdf->Ln (7); $ pdf-> Komórka (100,12, "Komputer:". $fielddb ['komputer']); $ pdf-> Linia (35,68,190,68); $pdf->Ln (9); $ pdf-> SetFont ('Arial', 'B', 10); $ pdf-> Komórka (60.12, 'BUDŻET'); $pdf->Ln (2); $ pdf-> SetFont ('Arial', '', 8); ?> zm13 -> 

Następnie poprzez zapytanie do bazy danych plus pętla while generuję pozostałe komórki i obliczam kwoty.
 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']; } ?> 

Następnie tworzymy pozostałe komórki odpowiednio dla sum, podatku VAT i podatków
 Ln (7); $pdf-> Komórka (110.7); $ pdf-> Komórka (29,8, „ŁĄCZNIE”, 1,0, „R”); $pdf-> Komórka (15,8, chr (128). "" .number_format ($ cenaconiva, 2, '.', ''), 1,0, 'R'); $pdf->Ln (20); $ pdf-> Multicell (400,4, "Uwaga:". $ rowrepar ['notapresu']); ?> zm13 -> 

Dodajemy również Multicell, który spełnia funkcję kilku komórek w jednej, służy do dużych bloków tekstu np. przypisu
Na koniec nadajemy nazwę naszemu plikowi, do którego możemy wstawić id, który będzie je wyliczał według bazy danych oraz definiujemy opcję pobierania.
 Wyjście (plik $, "D"); ?> zm13 -> 

Inną ciekawą aplikacją jest połączenie fpdf z klasami do generowania kodów kreskowych z I25, EAN 39, 128 itd. Na stronie fpdf znajduje się kilka przykładów i innych skryptów udostępnionych przez społeczność do testowania. Oto przykład odcinka płatności, który klienci pobierają ze strony internetowej.

Bardzo częstym problemem, jaki zwykle daje ta biblioteka, jest nierespektowanie akcentów, możemy to rozwiązać za pomocą funkcji, a następnie przejrzeć każdy tekst treści.
 

W ten sposób zaoszczędzimy problem i akcenty FPDF.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave