![]() |
PHPKurz PHP (24.) |
Úvodem | Kurz PHP | Odkazy | Aplikace | Otázky a odpovědi |
|
Generování PDF pomocí PHP (2.)V dnešním díle budeme pokračovat v generování PDF dokumentů pomocí knihovny FPDF o níž jsme si řekli již v úvodu minulého dílu. Dnes si povíme jak pracovat s barvami, vytvořit vlastní font a jak vytvářet tabulky. Ke změně barvy textu slouží metoda SetTextColor: SetTextColor(int red [, int green [, int blue]]) Jako parametry dosazujeme číslo od 0 do 255 vyjadřující složení dané barvy. Příklad: <? define('FPDF_FONTPATH','./font/'); require('./fpdf.php'); // Na stránku vepíšeme barevný text. $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial', 'B', 16); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> Mezi další metody určené k výplni slouží SetFillColor: SetFillColor(int red [, int green [, int blue]]) Definuje barvu, která bude využívána pro operace s výplněmi. Příklad: <? define('FPDF_FONTPATH','./font/'); require('./fpdf.php'); // Na stránku vepíšeme barevnou buňku. $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('arial', '', 16); $pdf->SetFillColor(255, 250, 0); $pdf->Cell(40, 6, "Testovací text", 'LR', 0, 'L', 1); $pdf->Output(); ?> SetDrawColor(int red [, int green [, int blue]]) Definuje barvu, která bude využívána pro všechny kreslící operace (ohraničení, linky apod.). Příklad: <? define('FPDF_FONTPATH','./font/'); require('./fpdf.php'); // Na stránku vepíšeme ohraničenou barevnou buňku. $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('arial', '', 16); $pdf->SetFillColor(255, 250, 0); $pdf->SetDrawColor(255, 0, 0); $pdf->Cell(40, 6, "Testovací text", 'LR', 0, 'L', 1); $pdf->Output(); ?> Text a vytvoření nového fontuKe vkládání celých odstavců textů můžeme využít metodu MultiCell, pomocí které můžeme vložit na stránku text, který bude automaticky zarovnán. MultiCell(float šířka, float výška, string text [, mixed ohraničení [, string zarovnání [, int vyplň]]])
Příklad: <? define('FPDF_FONTPATH','./font/'); require('./fpdf.php'); // Na stránku vepíšeme barevný text. $pdf=new FPDF(); $pdf->Open(); $pdf->AddFont('arial','','arial.php'); $pdf->AddPage(); $pdf->SetFont('arial', '', 16); $text = "Záleží na určování velikosti datového typu? Velikost pole by měla být vždy Pokud se pokusíme podívat na tento PDF dokument, tak zjistíme, že se špatně zobrazují české znaky. My si nyní ukážeme postup, jak si vytvoříme nový font pro PDF knihovnu, pomocí kterého můžeme vytvářet i české znaky. Pomocí utility ttf2pt1 můžeme konvertovat TTF na Type1. Tuto utilitu si můžete stáhnout také zde. Nyní si nejprve pomocí následujícího příkazu vytvoříme potřebné definiční soubory: ttf2pt1 -b -L cp1250.map arial.ttf arial
Poslední fází je vytvoření výsledných souborů, které vyžaduje PDF knihovna. K tomu slouží soubor makefont.php, který se nachází v adresáři "font/makefont/". Následující skript nám vytvoří potřebné soubory arial.php a arial.z. Tyto soubory následně umístíme do složky "font". <? require("./font/makefont/makefont.php"); MakeFont("arial.pfb", "arial.afm" , "cp1250"); ?> Nový font přidáme pomocí metody AddFont: $pdf->AddFont('arial','','arial.php'); Pokud se Vám nechce "zdržovat" s danými postupy, můžete si tyto soubory stáhnout zde. TabulkyVytváření tabulek patří mezi ty jednodušší úkoly. Celý princip se skládá z vytvoření buněk pomocí funkce Cell a následného zarovnání na nový řádek pomocí funkce Ln. Ukázkový skript by mohl vypadat následovně: <? define('FPDF_FONTPATH','./font/'); require('./fpdf.php'); // Na stránku vepíšeme ohraničenou barevnou buňku. $pdf=new FPDF(); $pdf->Open(); $pdf->AddFont('arial','','arial.php'); $pdf->AddPage(); $pdf->SetFont('arial', 'B', 16); $pdf->SetFillColor(255, 250, 0); $pdf->SetDrawColor(255, 0, 0); // Hlavička tabulky $pdf->Cell(40, 6, "Jméno", 'LTRB', 0, 'L', 1); $pdf->Cell(40, 6, "Funkce", 'LTRB', 0, 'L', 1); $pdf->SetFont('arial', '', 14); // Data tabulky $pdf->Ln(); $pdf->Cell(40, 6, "Josef Novák", 'LTRB', 0, 'L', 1); $pdf->Cell(40, 6, "Manager", 'LTRB', 0, 'L', 1); $pdf->Output(); ?> Pro tento díl to bude vše. V příštím díle budeme dále pokračovat v poznávání jazyka PHP.
|
|