![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarząd Postów: 1 512 Pomógł: 2 Dołączył: 22.04.2002 Skąd: Koszalin ![]() |
co jakis czas pojawia się problem polskich czcionek w pdf-ie. W zwiąku z tym, że ja też zacynam coraz mocniej drążyć tą tematykę proszę o podanie przykładów poradzenia sobie z tym problemem przy http://www.fpdf.org/ oraz http://www.ros.co.nz/pdf/.
Temat pozostawiam jako przyklejony na okres rozwiązania problemu. W okresie późniejszym zostanie stworzony małe faq lub kurs. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Oto krótki tutorial jak tworzyć polskie czcionki i jak z nich korzystać w dokumentach PDF, tworzonych przez darmową klasę (FPDF). Użyjemy do tego narzędzia (Makefont) zawartego w dystrybucji FPDF. Służy ono do generowania czcionki, którą później będziemy wykorzystywać w naszym dokumencie PDF.
Najpopularniejsze formaty czcionek to: Type1 i TrueType. Są typowymi czcionkami wektorowymi stosowanymi w środowiskach graficznych niezależnie od platformy. Twórcą formatu Type1 jest firma Adobe, a formatu TrueType firmy Apple i Microsoft. Aby uzyskać polskie ogonki w PDF'ie należy przekonwertować czcionkę z formatu TrueType do formatu Type1. _______________________________ 1. Krok pierwszy (generowanie metrycznego pliku *.afm). Aby wygenerować plik *.afm przydatne będzie darmowe narzędzie ttf2pt1 konwertujące czcionkę w formacie TrueType do formatu Adobe Type1. Dostępne jest pod adresem: http://ttf2pt1.sourceforge.net/download.html Binaria Windows dostępne są pod adresem: http://www.fpdf.org/fr/dl.php?id=22 W linii poleceń wpisujemy: Cytat ttf2pt1 –a nazwa_czcionki.ttf nazwa_pliku_afm
np. dla czcionki arial.ttf Cytat ttf2pt1 –a arial.ttf arialpl
Powinieneś otrzymać pliki: arialpl.afm i arialpl.t1a. To najważniejszy moment w budowaniu czcionek. Ponieważ są one dołączane do pliku PDF w tym momencie musimy zadbać o rozmiar generowanych plików. Aby ograniczyć czcionkę do konkretnego kodowania można użyć zawartych w katalogu /font/makefont/ plików *.map zawierających mapę znaków dla konkretnego kodowania. Generowanie czcionki arialpl dla kodowania ISO-8859-2: Cytat ttf2pt1 –b -L iso-8859-2.map arial.ttf arialpl
Można również usunąć z pliku mapy znaki, których nie będziemy używali. To również spowoduje zminiejszenie rozmiaru wynikowego pliku czcionki, ale ta metoda nie jest polecana zwłaszcza przy dynamicznym generowaniu PDF'ów. _______________________________ 2. Krok drugi (generowanie pliku czcionki za pomocą narzędzia Makefont) Tworzymy krótki skrypt php. [php:1:b5574f368e]<?php require('sciezka_do_narzedzia_makefont/makefont.php'); Makefont('nazwa_czcionki.ttf', 'nazwa_pliku_afm.afm', 'kodowanie'); ?>[/php:1:b5574f368e] np. dla czcionki arial.ttf i utworzonego wczesniej pliku arialpl.afm [php:1:b5574f368e]<?php require('sciezka_do_narzedzia_makefont/makefont.php'); Makefont('arial.ttf', 'arial.afm', 'iso-8859-2'); ?>[/php:1:b5574f368e] Powinieneś otrzymać pliki: arialpl.php i arialpl.z. Oba pliki tworzą czcionkę, która możesz wykorzystywać w dokumencie PDF. Należy pamiętać, że stylem wygenerowanej czcionki arialpl jest REGULAR. Dla stylu BOLD i ITALIC istnieja inne pliki ttf: -- arialbd.ttf (BOLD) -- ariali.ttf (ITALIC), -- arialbi.ttf (ITALIC BOLD), _______________________________ 3. Krok trzeci (Instalacja czcionki). Przekopiuj wcześniej utworzone pliki *.php i *.z do katalogu z fontami (domyślnie w FPDF to 'font/'): [php:1:b5574f368e]<?php define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('nazwa_czcionki','styl_czcionki','plik_czcionki.php'); $pdf->SetFont('nazwa_czcionki','styl_czcionki', rozmiar); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?>[/php:1:b5574f368e] przykład dla naszej czcionki arialpl: [php:1:b5574f368e]<?php define('FPDF_FONTPATH','font/'); require('fpdf.php'); $pdf=new FPDF(); $pdf->Open(); $pdf->AddPage(); $pdf->AddFont('arialpl', '', 'arialpl.php'); $pdf->SetFont('arialpl', '', 12); $pdf->Cell(40, 10, 'Hello World!'); $pdf->Output(); ?>[/php:1:b5574f368e] Od tego momentu każdy wypisany tekst w dokumencie PDF, będzie używał czcionki arialpl o rozmiarze 12. PAMIĘTAJ: Jeśli ustalisz kodowanie na ISO-8859-2, tekst przekazywany do PDF'a również musi być w formacie ISO-8859-2. _______________________________ A oto efekt: test.pdf Wykorzystałem czcionkę Verdana: REGULAR, BOLD i ITALIC Do ściągnięcia: tutaj. Inne czcionki to wasze zadanie domowe :wink: -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 18.06.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam
probowalem ta sama metoda stworzyc fonty do ros'a ale, ostatecznie nic z tego nie wyszlo. po wygenerowaniu pdf jest : The font 'timespl' contains a bad /BBox czyli nie wrzucil fontow ![]() wyglada to tak: [php:1:98b9542082]<?php include ('class.ezpdf.php'); $pdf =& new Cezpdf(); $diff=array(164=>'Aogonek'); $pdf->selectFont('./fonts/timespl.afm' ,array('encoding'=>'WinAnsiEncoding','differences'=>$diff)); $pdf->ezText('powinno byc Ą',10); ?>[/php:1:98b9542082] znalazl ktos na to sposob ? pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 15:50 |