![]() |
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.
|
|