2012-02-24 57 views
5

Ai đó có thể đưa ra một ví dụ rõ ràng và ngắn gọn về cách bạn có thể tạo tệp PDF bằng TCPDF để hỗ trợ chuỗi văn bản từ bất kỳ ngôn ngữ nào?Tạo các tệp PDF bằng TCPDF hỗ trợ tất cả các ngôn ngữ đặc biệt là CJK

Dường như không có một phông chữ nào hỗ trợ tất cả các ngôn ngữ. Tôi đoán phông chữ sẽ quá lớn?

Tôi cho rằng cách chính xác sẽ là phát hiện ngôn ngữ của chuỗi và tự động đặt loại phông chữ thành phông chữ tương thích. Nếu đây là trường hợp sau đó nó sẽ rất phức tạp trong việc phát hiện ngôn ngữ cho mỗi chuỗi.

Hầu hết các ngôn ngữ đều được hỗ trợ nếu bạn sử dụng phông chữ "freeserif". Tuy nhiên nó không hỗ trợ phông chữ CJK. Tôi đã thử nhiều phông chữ (kozminproregular, cid0jp, cid0kr, cid0jp, stsongstdlight) để nhận hỗ trợ cho tiếng Trung, Japanse và Hàn Quốc, nhưng không ai trong số họ có vẻ hỗ trợ cả ba ngôn ngữ.

+0

Bạn có giải pháp phù hợp nào không? Tôi cũng phải đối mặt với cùng một vấn đề. – Emma

+0

@Emma Rõ ràng giải pháp của EtiennezOr sẽ hoạt động, nhưng tôi chưa hoàn thành các bước. – Matt

+0

Cảm ơn bạn đã trả lời. Tôi sẽ thử nó. – Emma

Trả lời

0

Managed vấn đề này bằng cách làm cho phông chữ riêng của tôi từ ms arial unicode với các bước sau:

Trong một kịch bản thời gian đặt và thực hiện điều này
1. đặt một bản sao của ARIALUNI.ttf trong phông chữ thư mục dưới cài đặt TCPDF (Tôi đã lấy bản sao từ thư mục windows \ fonts
2. tạo một tập lệnh tạm thời trong thư mục ví dụ về tcpdf và thực thi nó bằng dòng này:
$ fontname = $ pdf-> addTTFfont ('../ fonts/ARIALUNI .ttf ',' TrueTypeUnicode ',' ', 32);
3. đặt phông chữ mới trong tập lệnh trình tạo pdf của bạn:
$ pdf-> SetFont ('arialuni', '', 20);

Hiện tại, pdf phải hiển thị đúng các ký tự CJK.
Hy vọng điều này sẽ giúp rất nhiều người.

+0

Phông chữ của bạn lớn như thế nào sau khi thực hiện việc này? Nó có hỗ trợ tiếng Trung, tiếng Nhật, tiếng Hàn không? cảm ơn. – Matt

+0

@ Etiennez0r: Nó có vấn đề hiển thị với Unicode Unicode ... – Sankalp

+0

Nó lớn hơn như tôi có thể nhớ, nhưng nó suported Trung Quốc, Nhật Bản và Hàn Quốc ký tự (CJK) như Matt hỏi. Chưa thử unicode tiếng Hin-ddi – Etiennez0r

1

Điều này hoàn toàn phù hợp với tôi. Cảm ơn bạn!

Để chắc chắn, các tập tin PDF được tạo ra sẽ không nhận được để lớn, sử dụng FontSubsetting - Tôi có một 10 trang PDF được tạo ra chỉ với một vài dòng của Trung Quốc (tên trên chứng chỉ)

$ pdf-> setFontSubsetting (thật); => Tệp PDF hơi lớn hơn 925kb so với 755kb không có tên tiếng Trung nếu bạn sử dụng $ pdf-> setFontSubsetting (sai); => Kích thước tệp PDF khoảng 17,5 MB ...

0

Tôi vừa thử giải pháp của Etiennez0r, và nó không hiệu quả với tôi. Cần thiết để thực hiện một thay đổi nhỏ như sau:

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

tôi thiết lập:

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

....... // thiết lập phông chữ

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

xuất khẩu Nhật Bản đang hoạt động hiệu quả