我需要使用捷克国家字符创建PDF,我正在尝试使用PDFBox库。 我从一些教程中复制了以下代码:
public void doIt(String file, String message) throws IOException, COSVisitorException
{
PDDocument doc = null;
try
{
doc = new PDDocument();
PDSimpleFont font = PDType1Font.TIMES_ROMAN;
TextToPDF textToPdf = new TextToPDF();
textToPdf.setFont(font);
textToPdf.setFontSize(12);
doc = textToPdf.createPDFFromText(new StringReader(message));
doc.save(file);
}
finally
{
if( doc != null )
{
doc.close();
}
}
}
现在,我正在调用函数doIt:
app.doIt("test.pdf", "Skákal pes přes oves, přes zelenou louku.");
这完全有效,但在输出PDF中我得到:“þÿSkákalpespYes oves,pYes zelenou louku。”
我试图找到如何在PDFBox中设置UTF-8编码,但恕我直言,互联网上没有解决方案。
您有什么想法,如何在输出PDF中获得正确的文字?
谢谢。
答案 0 :(得分:1)
我认为它的PDType1Font.TIMES_ROMAN
字体不支持捷克国家字符。如果您可以设法获取.ttf
的{{1}}个文件,请使用以下内容获取Czech national characters
,如下所示:
PDFont
此处 PDFont font = PDTrueTypeFont.loadTTF( doc, new File( "CheckRepFont.ttf" ) );
是您的字体文件名作为示例。用实际更新它。
编辑:
CheckRepFont.ttf