Linux Mint 17.1 上で itext-7.0.1 を使用してい
ます。非 ASCII テキスト (ヘブライ語) を PdfDocument に追加しようとしていますが、テキストにすべてのヘブライ文字がありません。
private void writePdf(Entity entity, OutputStream outputStream) throws IOException {
PdfWriter pdfWriter = new PdfWriter(outputStream);
PdfDocument pdfDocument = new PdfDocument(pdfWriter);
Document document = new Document(pdfDocument);
PdfFont font = PdfFontFactory.createRegisteredFont("open sans", "UTF-8"); //A correctly registered font
document.add(new Paragraph("Some English Letters").setFont(font)); //This will appear well inthe PDF
document.add(new Paragraph(entity.getName()).setFont(font)); //This will appear as a blank line
System.out.println(entity.getName()); //Written correctly to stdout
document.add(new Paragraph(entity.getId()).setFont(font)); //This will appear correctly in the PDF
document.close();
System.exit(-1);
}
上記のコードを要約すると、すべての ASCII テキスト (英語と数字) は PDF に正しく書き込まれますが、ヘブライ文字 ( entity.getName()
) は空白行として書き込まれます。上記のフォントはワープロで正しく入力されていますが、これを確認するために、同じ結果を引き起こす他のフォントを試しました。
itext-5 には多くの記述があります。7 ではなく itext-5 に切り替える必要がありますか?