ClibPDF funkcie
Úvod
ClibPDF vám dovoľuje vytvárať PDF dokumenty s PHP. Funkčnosť ClibPDF a API sú podobné ako PDFlib. Táto dokumentáciu by ste mali čítať súčasne s ClibPDF manuálom, nakoľko vysvetľuje knižnicu vo väčšom detaile.
Mnoho funkcií v pôvodnom ClibPDF a PHP module, rovnako ako PDFlib, má rovnaké názvy. Všetky funkcie okrem cpdf_open() majú ako svoj prvý parameter handle pre dokument.
Momentálne sa handle interne nepoužíva, pretože ClibPDF nepodporuje vytváranie niekoľkých PDF dokumentov naráz. Vlastne by ste to namali ani skúšať, výsledky sa nedajú predvídať. Nemožno prehliadnúť aké sú následky v prepletenom prostredí. Podľa autora ClibPDF dôjde k zmene v jednom z ďalších vydaní (v dobe písania tohto dokumentu je aktuálnou verziou 1.10). Ak túto funkčnosť potrebujete, použite pdflib modul..
Peknou vlastnosťou ClibPDF (a PDFlib) je schopnosť vytvárať celý pdf dokument v pamäti bez použitia dočasných súborov. Taktiež poskytuje schopnosť udávať súradnice v preddefinovanej jednotke dĺžky. (Táto vlastnosť sa tiež môže simulovať cez pdf_translate() pri použití PDFlib funkcií.)
Ďalšou skvelou vlastnosťou ClibPDF je fakt, že ak už bola nová strana otvorená, iná strana sa môže hocikedy modifikovať. Funkcia cpdf_set_current_page() umožňuje odložiť aktuálnu stranu a použiť inú na modifikovanie.
Väčšina funkcií sa veľmi jednoducho používa. Najťažšia časť je snáď len vytváranie veľmi jednoduchého PDF dokumentu. Následujúci príklad by vám mal pomôcť so začatkom. Vytvára dokument s jednou stranou. Strana obsahuje text "Times-Roman" v obrysovom 30pt fonte. Text je podčiarknutý.
Požiadavky
Aby ste ClibPDF funkcie mohli používať, musíte nainštalovať balík ClibPDF. Je možné si ho stiahnúť z » FastIO, ale vyžaduje kúpu licencie pre komerčné použitie. PHP vyžaduje, aby ste používali cpdflib >= 2.
Inštalácia
Aby tieto funkcie fungovali, musíte PHP skompilovať s --with-cpdflib[=DIR]. DIR je inštalačný adresár cpdflib, default je /usr. Navyše môžete určiť na používanie jpeg knižnicu a tiff knižnicu pre ClibPDF. Ak tak chcete urobiť, pridajte do konfiguračných riadkov nastavenia --with-jpeg-dir[=DIR] --with-tiff-dir[=DIR].
Runtime Konfigurácia
Toto rozšírenie nemá žiadne konfiguračné direktívy definované v php.ini.
Preddefinované Konštanty
Konštanty uvedené nižšie sú definované týmto rozšírením a budú dostupné iba keď rozšírenie bolo buď kompilované do PHP alebo dynamicky načítané za behu (runtime).
Príklady
Example#1 Jednoduchý ClibPDF príklad
<?php $cpdf = cpdf_open(0); cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0); cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1"); cpdf_begin_text($cpdf); cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding"); cpdf_set_text_rendering($cpdf, 1); cpdf_text($cpdf, "Times Roman outlined", 50, 750); cpdf_end_text($cpdf); cpdf_moveto($cpdf, 50, 740); cpdf_lineto($cpdf, 330, 740); cpdf_stroke($cpdf); cpdf_finalize($cpdf); Header("Content-type: application/pdf"); cpdf_output_buffer($cpdf); cpdf_close($cpdf); ?>
pdflib distribúcia obsahuje komplexnejší príklad, ktorý vytvára sériu strán s analógovými hodinami. Tu je príklad skonvertovaný do PHP pomocou rozšírenia ClibPDF:
Example#2 pdfclock príklad z pdflib 2.0 distribúcie
<?php $radius = 200; $margin = 20; $pagecount = 40; $pdf = cpdf_open(0); cpdf_set_creator($pdf, "pdf_clock.php3"); cpdf_set_title($pdf, "Analogove Hodiny"); while($pagecount-- > 0) { cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0); cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0); /* wipe */ cpdf_translate($pdf, $radius + $margin, $radius + $margin); cpdf_save($pdf); cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0); /* posun o minutu */ cpdf_setlinewidth($pdf, 2.0); for ($alpha = 0; $alpha < 360; $alpha += 6) { cpdf_rotate($pdf, 6.0); cpdf_moveto($pdf, $radius, 0.0); cpdf_lineto($pdf, $radius-$margin/3, 0.0); cpdf_stroke($pdf); } cpdf_restore($pdf); cpdf_save($pdf); /* posun o 5 minut */ cpdf_setlinewidth($pdf, 3.0); for ($alpha = 0; $alpha < 360; $alpha += 30) { cpdf_rotate($pdf, 30.0); cpdf_moveto($pdf, $radius, 0.0); cpdf_lineto($pdf, $radius-$margin, 0.0); cpdf_stroke($pdf); } $ltime = getdate(); /* nakresli hodinovu rucicku */ cpdf_save($pdf); cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0); cpdf_moveto($pdf, -$radius/10, -$radius/20); cpdf_lineto($pdf, $radius/2, 0.0); cpdf_lineto($pdf, -$radius/10, $radius/20); cpdf_closepath($pdf); cpdf_fill($pdf); cpdf_restore($pdf); /* nakresli minutovu rucicku */ cpdf_save($pdf); cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0); cpdf_moveto($pdf, -$radius/10, -$radius/20); cpdf_lineto($pdf, $radius * 0.8, 0.0); cpdf_lineto($pdf, -$radius/10, $radius/20); cpdf_closepath($pdf); cpdf_fill($pdf); cpdf_restore($pdf); /* nakresli sekundovu rucicku */ cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0); cpdf_setlinewidth($pdf, 2); cpdf_save($pdf); cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0)); cpdf_moveto($pdf, -$radius/5, 0.0); cpdf_lineto($pdf, $radius, 0.0); cpdf_stroke($pdf); cpdf_restore($pdf); /* nakresli maly kruh v strede */ cpdf_circle($pdf, 0, 0, $radius/30); cpdf_fill($pdf); cpdf_restore($pdf); cpdf_finalize_page($pdf, $pagecount+1); } cpdf_finalize($pdf); Header("Content-type: application/pdf"); cpdf_output_buffer($pdf); cpdf_close($pdf); ?>
Tiež pozri
Tiež pozri dokumentáciu PDFlib rozšírenia.
Table of Contents
- cpdf_add_annotation — Pridáva poznámku
- cpdf_add_outline — Pridáva záložku pre aktuálnu stranu
- cpdf_arc — Nakreslí oblúk
- cpdf_begin_text — Začína textovú sekciu
- cpdf_circle — Nakreslí kružnicu
- cpdf_clip — Spája s aktuálnou cestou
- cpdf_close — Zatvára pdf dokument
- cpdf_closepath_fill_stroke — Zatvoriť, naplniť a nakresliť aktuálnu cestu
- cpdf_closepath_stroke — Zatvoriť cestu a nakresliť čiaru pozdĺž cesty
- cpdf_closepath — Zatvoriť cestu
- cpdf_continue_text — Vypísať text na nový riadok
- cpdf_curveto — Nakreslí krivku
- cpdf_end_text — Ukončuje sekciu textu
- cpdf_fill_stroke — Vyplniť a nakresliť aktuálnu cestu
- cpdf_fill — Vyplniť aktuálnu cestu
- cpdf_finalize_page — Ukončuje stranu
- cpdf_finalize — Ukončuje dokument
- cpdf_global_set_document_limits — Nastavuje limity dokumentu pre každý pdf dokument
- cpdf_import_jpeg — Otvára JPEG obrázok
- cpdf_lineto — Nakreslí čiaru
- cpdf_moveto — Nastavuje aktuálny bod
- cpdf_newpath — Začína novú cestu
- cpdf_open — Otvára nový pdf dokument
- cpdf_output_buffer — Posiela výstup pdf dokumentu do buffera pamäte
- cpdf_page_init — Začína novú stranu
- cpdf_place_inline_image — Vkladá na stranu obrázok
- cpdf_rect — Nakreslí obdĺžnik
- cpdf_restore — Obnovuje prv uložené prostredie
- cpdf_rlineto — Nakreslí čiaru
- cpdf_rmoveto — Nastavuje aktuálny bod
- cpdf_rotate_text — Nastavuje rotačný uhol textu
- cpdf_rotate — Nastavuje rotáciu
- cpdf_save_to_file — Zapisuje pdf dokument do súboru
- cpdf_save — Ukladá aktuálne prostredie
- cpdf_scale — Nastavuje škálovanie
- cpdf_set_action_url — Nastavuje hyperlinku
- cpdf_set_char_spacing — Nastavuje odstup medzi znakmi
- cpdf_set_creator — Nastavuje pole tvorcu pdf dokumentu
- cpdf_set_current_page — Nastavuje aktuálnu stranu
- cpdf_set_font_directories — Nastavuje adresáre, v ktorých sa má hľadať pri používaní externých fontov
- cpdf_set_font_map_file — Nastavuje názov fontu na preklad mapy názvu súboru pri používaní externých fontov
- cpdf_set_font — Vyberie aktuálny zobrazenie fontu a veľkosť
- cpdf_set_horiz_scaling — Nastavuje horizontálne škálovanie textu
- cpdf_set_keywords — Nastavuje pole kľúčových slov pdf dokumentu
- cpdf_set_leading — Nastavuje vzdialenosť medzi riadkami textu
- cpdf_set_page_animation — Nastavuje dobu medzi stranami
- cpdf_set_subject — Nastavuje pole predmetu pdf dokumentu
- cpdf_set_text_matrix — Nastavuje maticu textu
- cpdf_set_text_pos — Nastavuje pozíciu textu
- cpdf_set_text_rendering — Určuje ako sa text renderuje
- cpdf_set_text_rise — Nastavuje stúpanie textu
- cpdf_set_title — Nastavuje pole titulku pdf dokumentu
- cpdf_set_viewer_preferences — Ako zobraziť dokument v prehliadači
- cpdf_set_word_spacing — Nastavuje odstup medzi slovami
- cpdf_setdash — Nastavuje čiarkovanú vzorku
- cpdf_setflat — Nastavuje plochosť
- cpdf_setgray_fill — Nastavuje plniacu farbu na hodnotu šedej
- cpdf_setgray_stroke — Nastavuje kresliacu farbu na hodnotu šedej
- cpdf_setgray — Nastavuje kresliacu a plniacu farbu na hodnotu šedej
- cpdf_setlinecap — Nastavuje linecap parameter
- cpdf_setlinejoin — Nastavuje linejoin parameter
- cpdf_setlinewidth — Nastavuje šírku čiary
- cpdf_setmiterlimit — Nastavuje limitu mitra
- cpdf_setrgbcolor_fill — Nastavuje plniacu farbu na hodnotu farby rgb
- cpdf_setrgbcolor_stroke — Nastavuje kresliacu farbu na hodnotu farby rgb
- cpdf_setrgbcolor — Nastavuje kresliacu a plniacu farbu na hodntu farby rgb
- cpdf_show_xy — Vypísať text na pozíciu
- cpdf_show — Vypisíať text na aktuálnu pozíciu
- cpdf_stringwidth — Vracia šírku textu v aktuálnom fonte
- cpdf_stroke — Nakreslí čiaru pozdĺž cesty
- cpdf_text — Vypísať text s parametrami
- cpdf_translate — Nastavuje počiatok súradnicovej sústavy