Format PDF (Portable Document Format) jest uniwersalnym formatem plików zachowującym całe formatowanie dokumentów niezależnie od systemu operacyjnego. Obsługa tworzenia dokumentów PDF jest dostępna w PHP.
W PHP dostępne są dwie biblioteki, które umożliwiają generowanie dokumentów PHP. Te biblioteki to i . Jeżeli nie są one wkompilowane w nasze PHP to należy jedną z nich wkompilować. W tym artykule opiszę generacje PDF’ów za pomocą funkcji biblioteki PDFLib. Czas przejść do przykładu na podstawie którego, wyjaśnie ogólne działanie funkcji PDF.
Na początek musimy utworzyć plik PDF lub nadpisać już istniejący za pomoca funkcji fopen, używając atrybutu w.
<?php $file = fopen(„test.pdf”, „w”); if(!$file){ echo „Nie można utworzyć pliku PDF”; exit; } |
Następnie musimy zainicjować dokument PDF, służy do tego funkcja pdf_open(). Możemy także do pliku PDF przypisać niektóre atrybuty jak autora czy tytuł dokumentu.
$pdf = pdf_open($file); pdf_set_info($pdf, „Author”, “Krzysztof Aszkiełowicz”); pdf_set_info($pdf, “Title”, “Pierwszy dokument PDF”); |
Zatem mamy otwarty już dokument PDF i przypisaliśmy mu atrybuty. Teraz musimy powiadomić PHP odkąd ma się zaczynać faktyczna zawartość dokumentu, służy do tego funkcja pdf_begin_page(). Jako atrybuty pobiera ona identyfikator dokumentu PDF, szerokość oraz wysokość strony w punktach. Format A4 posiada wymiary 595 x 842 punkty.
Następnie możemy dodać zakładkę do dokumentu służy do tego funkcja pdf_add_outline(). Jako parametry pobiera ona identyfikator dokumentu PDF oraz nazwę zakładki. Oto kod, który utworzy nam początek strony o formacie A4 i doda zakładkę do dokumentu PDF.
pdf_begin_page($pdf, 595, 842); pdf_add_outline($pdf, „Zakładka”); |
Dodaliśmy już zakładkę i zdefiniowaliśmy początek dokumentu, czas na ustawienia czcionek używanych w dokumencie. Do ustawienia czcionki tekstu służy funkcja pdf_set_font(). Pobiera ona standardowo identyfikator pliku PDF, nazwę czcionki, jej rozmiar oraz standard kodowania. W dokumentach PDF mamy do wyboru 14 podstawowych rodzajów czcionek:
– Courier /-Bold/-Oblique/-BoldOblique
– Helvetica /-Bold/-Oblique/-BoldOblique
– Times-Roman/Times-Bold/Times-Italic/Times-BoldItalic
– Symbol
– ZapfDingbats
W swoim przykładzie użyje czcionki Times-Roman o rozmiarze 20. Aby zainicjować tę czcionkę muszę wywołać funkcję pdf_set_font() z takimi argumentami:
pdf_set_font($pdf, „Times-Roman”, 20, „host”); |
Dokument PDF różni się od dokumentu edytora tekstu czy dokumentu HTML. Nie rozpoczyna się od górnego lewego rogu, lecz od lewego dolnego rogu. Także dokument PDF nie tworzy nowych linii w tekście, gdy zachodzi taka potrzeba.
Musimy teraz zdefiniować położenie tekstu, chcemy aby tekst wyświetlał się w lewem górnym rogu dokumentu.
pdf_set_text_pos($pdf, 60, 720); |
Teraz można dopiero wyświetlić tekst dokumentu PDF, służy do tego funkcja pdf_show(), pobiera ona identyfikator dokumentu PDF oraz tekst do wyświetlenia.
pdf_show($pdf, „Przykładowy tekst”); |
Powyższy kod wyświetli nam „Przykładowy tekst” czcionką Times-Roman o rozmiarze 20 punktów. Kiedy już nie będziemy wprowadzać żadnych informacji do dokumentu należy wywołać funkcję pdf_end_page() oraz póżniej pdf_close():
pdf_end_page($pdf); pdf_close($pdf); |
Teraz musimy zamknąć nasz plik i wysłać informację o typie dokumentu do przeglądarki a pomocą funkcji header().
fclose($file); Header(„Content-type: application/pdf”); Header(„Location: test.pdf”); ?> |
Jest to najprostszy generator dokumentów PDF, jaki można stworzyć. PDFLib posiada wiele funkcji które znajdziemy w manualu. Pozdrawiam i życzę miłego generowania PDF’ów.