Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Tip: Generovanie PDF súborov

Generovanie PDFiek prostredníctvom PHP je často využívaná funkcia napríklad v online fakturačných systémoch. Dnes vám predstavíme opensource PHP triedu, ktorá generovanie maximálne zjednodušuje a ponúka obrovské množstvo možností. Ide o triedu FPDF, ktorá zabezpečí vygenerovanie PDFka čisto z prostredia PHP, nepotrebuje žiadne neštandardné knižnice, ktoré zväčša na komerčných zdieľaných serveroch nie sú k dispozícií. Výhodné je taktiež, že trieda dokáže pracovať prakticky v akomkoľvek jazyku a nerobí jej problém ani slovenská diakritika – pracuje totiž v kódovaní UTF-8.

FPDF sa dá stiahnuť zo stránky http://www.fpdf.org, po rozbalení je bez nutnosti nejakej konfigurácie hneď funkčná. Použitie je veľmi jednoduché:

<?
require_once dirname(__FILE__) .'/fpdf.php';
 
$pdf=new FPDF(); // inicializácia triedy
$pdf->AddPage(); // vytvorenie novej strany v PDF
$pdf->SetFont('Arial','B',16); // nastavenie fontu
$pdf->Text(20,30,'textovy retazec') // vypise text
$pdf->Output(); // vystup - bud priamo na obrazovku alebo sa vygenerovaný dokument uloží
?>

FPDF obsahuje veľké množstvo metód na vygenerovanie rôzne formátovaného obsahu. Napríklad použitá metóda Text vypíše zvolený reťazec na určené súradnice (x,y). Podobne fungujú aj metódy Cell či Multicell, každá má však nejaké svoje špecifiká. Multicell vypisuje text do rámika, zvolenej veľkosti. Zalamovanie riadkov je automatické, pri dosiahnutí okraja.
Pomocou metódy Image sa dá do PDFka importovať rastrový obrázok.
Relatívne rozsiahly zoznam dostupných metód je priamo na domovskej stránke FPDF http://www.fpdf.org/…oc/index.php, avšak zďaleka nie všetko je dostatočne zdokumentované.

Dôležitá je napríklad možnosť generovať dynamický obsah do šablóny, čo je dobré najmä v prípade spomínaných fakturačných systémov. Táto funkčnosť nie je dobre popísaná na domovskej stránke FPDF.

Vytvorenie šablóny

<?
$pdf=new FPDF();
$p = $pdf->setSourceFile("pdfsubor.pdf");
$tpl = $pdf->importPage(1, '/MediaBox');
$pdf->useTemplate($tpl);
$pdf->Output();
?>

Takýto kód inicializuje FPDF triedu, a nahrá súbor s názvom „pdfsubor.pdf“ ako šablónu pre generované PDFko. Do takejto šablóny už potom na základe súradníc nie je problém dynamicky generovať text.

Tomáš Mašek

Naspäť naspäť Pridať komentár k článku prispieť do diskusie [7]

Vyhľadávanie

v názvoch článkov v textoch článkov

Pridať komentár

Koľko je na ruke prstov?

RSS