Manuál PHP | ||
---|---|---|
Předcházející | Další |
Pokud máte PDF knihovnu od Thomase Merze (dostupná z http://www.pdflib.com/pdflib/index.html), můžete používat PDF funkce na tvorbu PDF souborů; ke kompilaci budete potřebovat také JPEG knihovnu a TIFF knihovnu. Tyto dvě knihovny poměrně často dělají potíže při konfiguraci PHP. Při řešení případných problémů se řiďte chybovými zprávami configure skriptu.
Věnujte prosím pozornost výborné dokumentaci pdflib, která je součástí distribuce zdrojového kódu. Poskytuje velmi dobrý přehled schopností pdflib. Většina funkcí pdflib a příslušného PHP modulu má stejné jméno. Argumenty jsou také identické. Pokud chcete tento modul využívat opravdu efektivně, měli byste chápat také některé z konceptů PDF nebo Postscriptu. Všechny rozměry a koordináty se udávají v Postscriptových bodech. Obecně je 72 PostScriptových bodů na palec, ale závisí to na výstupním rozlišení.
Existuje další PHP modul na tvorbu PDF dokumentů, založený na ClibPDF od firmy FastIO. Má mírně jinou API. Detaily viz ClibPDF funkce.
Tento PDF modul zavádí nový typ proměnné. Nazývá se pdfdoc. pdfdoc je pointer na PDF dokument a téměř všechny funkce ho vyžadují jako svůj první argument.
Od úplného začátky podpory PDF v PHP — od pdflib 0.6 — došlo k mnoha změnám zvláště v API pdflib. Většinu těchto změn PHP nějak zakrylo, některé vyžadovaly změnu PHP API. Od pdflib 3.x se API snad stabilizovala, a PHP 4 přijala tuto verzi jako mimimální pro podporu PDF. Následkem toho mnoho funkcí dříve či později zmizí nebo bude nahraženo alternativami. Podpora pdflib 0.6 už byla naprosto ukončena. Následující tabulka vyjmenovává všechny funkce, které jsou od PHP 4.0.2 zastaralé a měly by být nahraženy jejich novějšími verzemi.
Tabulka 1. Zastaralé funkce a jejich náhrady
Stará funkce | Náhrada |
---|---|
pdf_put_image() | Není potřeba. |
pdf_get_font() | pdf_get_value() s "font" jako druhý argument. |
pdf_get_fontsize() | pdf_get_value() s "fontsize" jako druhý argument. |
pdf_get_fontname() | pdf_get_parameter() s "fontname" jako druhý argument. |
pdf_set_info_creator() | pdf_set_info() s "Creator" jako druhý argument. |
pdf_set_info_title() | pdf_set_info() s "Title" jako druhý argument. |
pdf_set_info_subject() | pdf_set_info() s "Subject" jako druhý argument. |
pdf_set_info_author() | pdf_set_info() s "Author" jako druhý argument. |
pdf_set_info_keywords() | pdf_set_info() s "Keywords" jako druhý argument. |
pdf_set_leading() | pdf_set_value() s "leading" jako druhý argument. |
pdf_set_text_rendering() | pdf_set_value() s "textrendering" jako druhý argument. |
pdf_set_text_rise() | pdf_set_value() s "textrise" jako druhý argument. |
pdf_set_horiz_scaling() | pdf_set_value() s "horizscaling" jako druhý argument. |
pdf_set_text_matrix() | neexistuje |
pdf_set_char_spacing() | pdf_set_value() s "charspacing" jako druhý argument. |
pdf_set_word_spacing() | pdf_set_value() s "wordspacing" jako druhý argument. |
pdf_set_transition() | pdf_set_parameter() s "transition" jako druhý argument. |
pdf_set_duration() | pdf_set_value() s "duration" jako druhý argument. |
pdf_open_gif() | pdf_open_image_file() s "gif" jako druhý argument. |
pdf_open_jpeg() | pdf_open_image_file() s "jpeg" jako druhý argument. |
pdf_open_tiff() | pdf_open_image_file() s "tiff" jako druhý argument. |
pdf_open_png() | pdf_open_image_file() s "png" jako druhý argument. |
pdf_get_imagewidth() | pdf_get_value() s "imagewidth" jako druhý argument a obrázkem jako třetí argument. |
pdf_get_imageheight() | pdf_get_value() s "imageheight" jako druhý argument a obrázkem jako třetí argument. |
() | () |
Od pdflib 3.0 by se pdflib měla konfigurovat s volbou --enable-shared-pdflib.
Pokud používáte pdflib 2.01, zkontrolujte, jak je tato knihovna nainstalována. Měli byste mít soubor libpdf.so, nebo link na něj. Verze 2.01 vytváří soubor libpdf2.01.so, který se nedá najít při linkování testovacího souboru v configure. Budete muset vytvořit symbolický link z libpdf.so na libpdf2.01.so.
Ve verzi 2.20 přibyly další změny v API pdflib a podpora čínských a japonských fontů. Pokud používáte pdflib 2.20 buďte opatrní při generování PDF dokumentů v paměti. Do verze pdflib 3.0 by mohlo být nestabilní. Argument kódování v pdf_set_font() se změnil na řetězec. To znamená, že místo např. 4 musíte použít 'winansi'.
Pokud používáte pdflib 2.30, nemáte k dispozici pdf_set_text_matrix(). Přestala být podporována. Obecnou radou je zjistit si případné změny v release notes používané verze pdflib.
Žádná verze PHP 4 od data 9. března 2000 nepodporuje podflib starší než 3.0. Na druhou stranu, PHP 3 by se nemělo používat s novější verzí pdflib než 2.01.
Většina funkcí se používá docela snadno. Nejtěžší je zřejmě vůbec nějaký jednoduchý PDF dokument vůbec vytvořit. Následující ukázka by měla pomoci začít. Vytvoří soubor test.pdf s jednou stránkou. Tato stránka obsahuje text "Times Roman outlined" napsaný 30ti bodovým obrysem. Text je také podtržený.
Distribuce pdflib obsahuje rozsáhlejší ukázku, která obsahuje sérii stránek s analogovými hodinami. Tato ukázka převedená do PHP vypadá takto (stejnou ukázku najdete v dokumentaci k clibpdf modulu):
Příklad 2. pdfclock ukázka z pdflib distribuce
PHP skript getpdf.php pouze vrátí výtvořený PDF dokument.
|
Předcházející | Domů | Další |
overload | Nahoru | pdf_add_annotation |