2012-01-14 103 views
6

Ai đó có thể cho tôi biết tôi đang làm gì sai? Tôi cần phông chữ Arial trong pdf của tôi được tạo bởi TCPDF. Đầu tiên tôi đã cố gắng sử dụng: 1) Tôi nhận được Arial từ cửa sổ phông chữ caltalog và đặt nó trong thư mục TCPDF. 2) Tiếp theo, tôi đã viết trong kịch bản:Phông chữ cụ thể trong TCPDF pdf

$fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32); 

Sau đó trong TCPDF/phông chữ xuất hiện 3 tác phẩm (arial.ctg.z, arial.php và arial.z). Tôi nghĩ rằng tất cả mọi thứ là ok nhưng nếu trong TCPDF tôi sử dụng font chữ này bằng cách:

$pdf->SetFont('arial', '', 16); 

Font trong tài liệu thực sự là arial nhưng không cụ thể đánh bóng hát (ąęłżńź)

Tôi đã thử cũng chuẩn bị phông chữ của mình : tôi tải ttf2afm và kịch bản makefontuni.php sau đó trong dòng lệnh tôi đã viết này:

ttf2ufm -a arial.ttf 
php -q makefontuni.php arial.ttf arial.ufm 

rằng lệnh đã cho tôi cũng 3 tác phẩm (arial.ctg.z, arial.php và arial.z) nhưng tình hình chính thức cũng giống như trước đây.

Tôi đã thừa nhận rằng tất cả các dữ liệu văn bản cho pdf là UTF-8 và TCPDF xây dựng là như thế này:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'utf-8', false); 

Tôi không biết những gì tôi làm sai. :(

Trả lời

3

Không cần phải thêm bất kỳ font chữ, sử dụng DejaVu Sans Font trong đó có nhân vật tất cả UTF-8 được xây dựng trong và TCPDF có nó đã ..

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

http://www.tcpdf.org/examples/example_001.phps

+2

Có bạn đúng nhưng tôi cần phông chữ Arial không dejavusans và đây là vấn đề – Karol85

+0

@Miro Markaravanes: Nó hoạt động cho các ký tự đặc biệt nhưng không hiển thị hiệu ứng in đậm. –

0

Hm Bạn có chắc chắn rằng Arial của bạn có tất cả các ký tự UTF-8 không? Tôi đã làm theo hướng dẫn tại đây http://www.tcpdf.org/fonts.php và nó hoạt động. từ một người khác, tất cả các nhân vật đều chuyển sang dấu chấm.

Vì vậy, tại thời điểm này tôi chỉ sử dụng phông chữ thông thường của mình và cho chữ đậm tôi sử dụng 'dejavusans' (nhờ Miro). Mã của tôi:

$fontname = $pdf->addTTFfont('/lib/tcpdf/fonts/myfont-Regular.ttf','TrueTypeUnicode',''); 
$pdf->SetFont($fontname, '', 8, '', true); 
13

Nếu bạn muốn sử dụng một phông chữ tùy chỉnh sử dụng công cụ này

http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

khi bạn nhận được các tập tin được tạo ra chỉ di chuyển chúng vào thư mục/phông chữ và có cùng tên họ có, thiết lập thuộc tính font-name.

+0

Cảm ơn vì điều này! – Mati

+0

Tôi chỉ muốn thêm 2 tệp đó cần được thêm vào thư viện .php và .z – mujaffars

+0

Chà. Nó hoạt động tốt hơn 'TCPDF_FONTS :: addTTFfont'. Tôi đã cố gắng sử dụng addTTFfont, nhưng phông chữ không hoạt động. Khi tôi thay thế các tệp .z và .php của phông chữ, nó hoạt động. –

0

tôi đã có lỗi tương tự tôi đã có thể để cố định nó đặt tiếp theo, sau khi de dòng:

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $fontname = $pdf->addTTFfont('tcpdf/fonts/arial.ttf', '', '', 32); $pdf->SetFont('arial', '', 16);

0

Tôi nghĩ rằng nó sẽ giúp bạn khắc phục vấn đề nhân vật.

$pdf->SetFont('freeserif', '', 12); 

Họ phông chữ hỗ trợ các ký tự UTF-8.

1
$fontname = TCPDF_FONTS::addTTFfont(FCPATH.'/assets/css/fonts/arial-unicode-ms.ttf'); 

Đây là những gì tôi sử dụng để bao gồm phông chữ tùy chỉnh cho TCPDF. Bạn chỉ cần tệp .ttf của phông chữ. Thêm nó vào thư mục bạn chọn trên máy chủ và chạy mã này một lần. (Tôi chạy nó lần đầu tiên xuất khẩu) Sau đó, bạn có thể bình luận hàng này và phông chữ sẽ ở đó.

Để thêm nó vào xuất khẩu bạn nên thêm nó như phông chữ với:

$pdf->addFont('your-font-name', '', 10, '', false); 

Và nếu bạn muốn nó được mặc định:

$pdf->setFont('your-font-name', '', 10, '', false); 

Nếu bạn không biết những gì là tên thực tế của phông chữ để sử dụng trong PDF:

echo $fontname; 

Điều này sẽ cung cấp cho bạn tên cụ thể của phông chữ để sử dụng trong tệp đã xuất.

Sau khi bạn chạy lệnh đó khi TCPDF tạo tất cả tệp cần thiết trong thư mục phông chữ của nó và sẵn sàng sử dụng từ bây giờ trở đi.

Nếu bạn muốn thêm lại cùng một phông chữ (đã sửa đổi), bạn cần xóa các tệp phông chữ của mình bằng tcpdf/fonts/your-font-name. và chạy lại lệnh này để thêm lại chúng.

Các vấn đề liên quan