2012-10-17 29 views
6

Bazı özel Çinli yazı dosyaları var. BaseFont.createFont() öğesini itext ile çağırdığımda doğru kodlamayı nasıl bilebilirim?</p> <pre><code>aaa.ttf bbb.ttf ccc.ttf </code></pre> <p>Ve iText ile benim pdf oluşturmak için bunları kullanmak istiyorum:

Bu

Ben BaseFont oluşturmak için kullandığınız koddur:

String encoding = ??? 
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
           encoding, 
           BaseFont.EMBEDDED); 

Ama encoding bulmak için nasıl bilmiyorum. Örneğin aaa.ttf atın: Ben bilgilerden encoding

enter image description here

bulabilir mi? BaseFont.CP1252 veya BaseFont.WINANSI gibi bazı kodlamaları denedim, ancak işe yaramadılar, çıktılar boş sayfalar ya da Çince karakterlerse çok sayıda ?????? karakterleri.

cevap

8

Bu sorunun farklı yanıtları vardır. Tam bir genel bakış için kitabımın "İşlemi iText" başlıklı 11. bölümünü okuyabilirsiniz, ancak sadece güvende olmak istiyorsanız, Identity-H'yi yatay metin (ve Identity-V) için kullanın. Bu gerçekten bir kodlama değildir, ancak PDF'de Unicode: http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H

+0

'u kullanan bir bileşik yazı tipi oluşturacaktır. Yardımınız için teşekkürler, itext'in yaratıcısı. Sadece IDENTITY_H' denedim ve karakterlerin pdf ile doğru şekilde görüntülenebildiğini gördüm. – Freewind

İlgili konular