FPDF е клас на php за изработка на pdf документи. Чрез него може да направите точно каквото пожелаете.
За разлика от конвертирането на HTML към PDF, което не може да се контролира точно как ще се покаже, чрез FPDF имате пълен контрол.
Пълния контрол е свързан с много функции, по-дълго програмиране, но по-добър ефект.
Ето и няколко добри помощни функции, както и трикове за по-лесна употреба и контрол:
Задаване на разстояние между буквите (letter spacing):
function SetCharSpacing( $s_w , $s_l = 0) { $this->s_w = $s_w; $this->s_l = $s_l; $this->_out( 'BT '. sprintf('%.3f Tc ', $this->s_w * $this->k). sprintf('%.3f Tw ', $this->s_l * $this->k). 'ET ' ); }
Изместване на текущата X, или Y позиция (без текст, без нов ред).
function Spacer($space) { $this->SetX($this->x + $space); } function SpacerY($space) { $this->y += $space; }
Взимане дължината на реда:
function GetLineWidth() { return $this->w - $this->rMargin - $this->x; }
Текст с булет за листа:
function SimpleListItem($w, $h, $txt, $border=0, $align='J', $fill=false, $listChar = '•') { $this->Spacer(6.4); $fs = $this->FontSizePt; $this->SetFont($this->FontFamily, '', 10); $this->Cell(6.4,3.5,$listChar); $this->SetFont($this->FontFamily, '', $fs); $this->MultiCell($w,$h,$txt,$border,$align,$fill); }
Чекбокс, който се изразява в квадратче, което може да има тикче. Подобно на HTML chechbox, което се управлява само от една булева променлива
function Checkbox($checked = true) { $this->Rect($this->x,$this->y+0.4,4.1,3.8); if($checked) { $file = "images/checked.png"; $w=3.5; $ax = $this->x+0.2; $ay = $this->y+0.6; $this->Image($file, $ax, $ay, $w, NULL, $type, $link); } $this->SetX($this->x + 4.1); }
Има и други функции и класове, които са доста полезни:
Таблица, http://www.vonderborn.com/extended-tables-with-fpdf.php
HTML код, http://www.fpdf.de/downloads/addons/41/