2016-09-08 3 views
-3

私は簡単なpdfドキュメントを生成するコードを書いています。しかし、私はユニコード文字をpdfにレンダリングできませんでした。任意の提案をいただければ幸いです。pdfのUnicodeに関する問題

+0

より具体的な情報を提供することをお勧めします。簡単なpdf文書*を生成するコードを書いただけであれば、どうやって間違ったことを言うことができますか?あなたが間違っていたということだけが言われています。 – mkl

+0

PDF(iTextまたは他のツール)を作成するライブラリはどちらですか?どのプログラミング言語を使用していますか(Java、C#、...)?このような不完全な質問に対する具体的な答えを期待するのは難しいです。 –

答えて

0

あなたはユニコードで次String Sがあるとします。

public static final String CZECH = 
     "Podivn\u00fd p\u0159\u00edpad Dr. Jekylla a pana Hyda"; 
public static final String RUSSIAN = 
     "\u0421\u0442\u0440\u0430\u043d\u043d\u0430\u044f " 
     + "\u0438\u0441\u0442\u043e\u0440\u0438\u044f " 
     + "\u0434\u043e\u043a\u0442\u043e\u0440\u0430 " 
     + "\u0414\u0436\u0435\u043a\u0438\u043b\u0430 \u0438 " 
     + "\u043c\u0438\u0441\u0442\u0435\u0440\u0430 " 
     + "\u0425\u0430\u0439\u0434\u0430"; 
public static final String KOREAN = 
     "\ud558\uc774\ub4dc, \uc9c0\ud0ac, \ub098"; 

その後、あなたはそれらの文字を描画することができますフォントプログラムを見つける必要があります。例えば:

public static final String FONT = "src/main/resources/fonts/FreeSans.ttf"; 
public static final String HCRBATANG = "src/main/resources/fonts/HANBatang.ttf"; 

FreeSansは通常のLinuxに同梱されて自由にフォントです。それは多くの言語をサポートしますが、すべてではありません。たとえば、韓国語はサポートされていないため、HAN Batangも使用します。

我々はPdfFontオブジェクトを作成するには、これらのフォントプログラムを使用して、我々はParagraphオブジェクトでこれらのオブジェクトを使用します。

PdfFont freeUnicode = 
    PdfFontFactory.createFont(FONT, PdfEncodings.IDENTITY_H, true); 
document.add(new Paragraph().setFont(freeUnicode) 
    .add(CZECH).add(" by Robert Louis Stevenson")); 
document.add(new Paragraph().setFont(freeUnicode) 
    .add(RUSSIAN).add(" by Robert Louis Stevenson")); 
PdfFont fontUnicode = 
    PdfFontFactory.createFont(HCRBATANG, PdfEncodings.IDENTITY_H, true); 
document.add(new Paragraph().setFont(fontUnicode) 
    .add(KOREAN).add(" by Robert Louis Stevenson")); 

結果は次のスクリーンショットに示されている:

enter image description here

として、 iText 7を使用すると、Unicodeは非常にシンプルです。この例は、iText 7: Building Blocksチュートリアルのchapter 1から取っています。

これはあなたが探していた情報でない場合は、あなたの質問を修正し、iTextの代わりに使用したツールとプログラミング言語を説明してください。