2012-02-24 10 views
5

Czy ktoś może złożyć jasny i zwięzły przykład, jak utworzyć plik PDF za pomocą protokołu TCPDF, który obsługuje ciągi tekstowe z dowolnego języka?Tworzenie plików PDF za pomocą protokołu TCPDF obsługującego wszystkie języki, w szczególności CJK

Wygląda na to, że nie ma jednej czcionki, która obsługuje wszystkie języki. Zgaduję, że czcionka byłaby zbyt duża?

Zakładam, że właściwym sposobem jest wykrycie języka ciągu i dynamiczne ustawienie czcionki na kompatybilną czcionkę. W takim przypadku staje się bardzo skomplikowane w wykrywaniu języka dla każdego ciągu znaków.

Większość języków jest obsługiwana, jeśli używasz czcionki "freeserif". Jednak nie obsługuje czcionek CJK. Próbowałem już wielu czcionek (kozminproregular, cid0jp, cid0kr, cid0jp, stsongstdlight), aby uzyskać wsparcie dla języka chińskiego, japonskiego i koreańskiego, ale żaden z nich nie obsługuje wszystkich trzech języków.

+0

Masz jakieś właściwe rozwiązanie? Mam do czynienia z tym samym problemem. – Emma

+0

@Emma Najwyraźniej rozwiązanie EtiennezOr powinno zadziałać, ale jeszcze nie ukończyłem kroków. – Matt

+0

Dzięki za odpowiedź. Spróbuję tego. – Emma

Odpowiedz

0

Zarządzane ten problem poprzez własną czcionkę z Arial Unicode MS z tych etapów:

W czasowej umieścić skrypt i wykonać ten
1. umieścić kopię ARIALUNI.ttf w folderze czcionek pod instalację TCPDF (pobrałem moją kopię z folderu windows \ fonts.
2. Wykonaj tymczasowy skrypt w folderze przykładów w tcpdf i wykonaj go w tym wierszu:
$ nazwa_katalogu = $ pdf-> addTTFfont ('../ czcionki/ARIALUNI .ttf ',' TrueTypeUnicode ',' ', 32);
3. Ustaw nową czcionkę w swoim skrypcie generatora PDF:
$ pdf-> SetFont ('arialuni', '', 20);

Teraz plik pdf powinien wyświetlać poprawnie znaki CJK.
Mam nadzieję, że to pomaga tak wielu ludziom.

+0

Jak duża jest twoja czcionka po wykonaniu tej czynności? Czy obsługuje chiński, japoński, koreański? dzięki. – Matt

+0

@ Etiennez0r: Występuje problem z renderowaniem z hindi Unicode ... – Sankalp

+0

To było większe, ponieważ pamiętam chińskie, japońskie i koreańskie postacie (CJK), tak jak pytał Matt. Nie próbowałem jeszcze hindi unicode – Etiennez0r

1

To zadziałało idealnie dla mnie. Dziękuję Ci!

Aby upewnić się, wygenerowany plik PDF nie będzie zbyt duża, należy FontSubsetting - Mam 10 stronie PDF wygenerowany z zaledwie kilku linii Chiński (nazwiska na dyplomów)

$ PDF-> setFontSubsetting (prawdziwe); => Plik PDF nieco większy niż 925kb vs 755kb bez chińskich nazw jeśli używasz $ pdf-> setFontSubsetting (fałsz); => PDF Rozmiar pliku około 17,5 MB ...

0

Po prostu wypróbowałem rozwiązanie Etiennez0r i nie zadziałało to dla mnie. Potrzebne, aby drobne zmiany, jak poniżej:

$fontname = TCPDF_FONTS::addTTFfont('../fonts/ARIALUNI.TTF', 'TrueTypeUnicode', '', 96); 
0

ja Otoczenie:

$fontname = TCPDF_FONTS::addTTFfont(FCPATH . 'TCPDF/fonts/ARIALUNI.ttf', 'TrueTypeUnicode', '', 32); 

....... // ustaw czcionki

$pdf->SetFont('dejavusans', '', 14); 
$pdf->SetFont('cid0cs', '', 14); 

Export japoński działa dobrze

Powiązane problemy