>

no big words

NTXT graphics design site

To enjoy the site visual flavours, you have to enable Flash plugin and JavaScript in your browser.

NTXT logo

biblioteka FPDF do PHP i polskie znaki

Aaaaby używać z powodzeniem polskich znaków w dokumentach PDF tworzonych przez bibliotekę FPDF Oliviera Platheya, trzeba spełnić dwa warunki:

  1. Kodować teksty w ISO-8859-2
  2. Używać fontu, który zawiera te znaki
  3. albo:
  4. Kodować teksty w win-1250
  5. i... używać fontu, który zawiera te znaki

Tutaj jest do pobrania archiwum z czcionką Arial CE Microsoftu (windows-1250), przekształcona wg wskazówek i narzędzi opisanych na stronach www.fpdf.org. Archiwum należy rozpakować do katalogu z czcionkami FPDF, najprawdopodobniej /font. W PHP, przed użyciem SetFont() musimy pamiętać o dodaniu czcionki poleceniem AddFont, np.:

$pdf=new FPDF();
$pdf->AddFont('arial_ce','','arial_ce.php');
$pdf->AddPage();
$pdf->SetFont('arial_ce','',35);
$pdf->Cell(0,10,'Zażółć gęślą jaźń');

Powyżej dodajemy tylko normalną wersję kroju, analogiczny zestaw (AddFont + SetFont) jest potrzebny przed użyciem pogrubienia, pochylenia czy obu naraz:
$pdf->AddFont('arial_ce','','arial_ce.php');
$pdf->AddFont('arial_ce','I','arial_ce_i.php');
$pdf->AddFont('arial_ce','B','arial_ce_b.php');
$pdf->AddFont('arial_ce','BI','arial_ce_bi.php');
$pdf->AddPage();
$pdf->SetFont('arial_ce','',35); //normalna
$pdf->Cell(0,10,'Zażółć gęślą jaźń');
$pdf->SetFont('arial_ce','I',35); //kursywa
$pdf->Cell(0,10,'Zażółć gęślą jaźń');
$pdf->SetFont('arial_ce','B',35); //pogrubiona
$pdf->Cell(0,10,'Zażółć gęślą jaźń');
$pdf->SetFont('arial_ce','BI',35); //pogrubiona kursywa
$pdf->Cell(0,10,'Zażółć gęślą jaźń');

Należy pamiętać, że każda wersja kroju zwiększa rozmiar wynikowego PDFa o 100-200 kB.

Kodowanie znaków

Jeśli zamiast polskich znaków wciąż pokazują się krzaczki, to warto spróbować innego kodowania. Choćby z latin2, czyli iso-8859-2 do cp1250 czyli windows-1250: $tekst = iconv('iso-8859-2','windows-1250//TRANSLIT', $tekst); Więcej o funkcji iconv() w manualu PHP.

Konwersja TTF do plików czcionek FDPF online

Konwerter jest dostępny na stronach fruit-lab.de, a link znalazłem na forum.webhelp.pl.

Oryginalnej bibliotece brakowało kilku rzeczy, aby można było przygotować z jej pomocą plik drukarski (np. pod offset). Kilka pomocnych metod dopisałem tworząc rozszerzenie FPDF do automatyzacji składu.