gpt4 book ai didi

Java:使用 PDFBox 将国家字符写入 PDF

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:18 27 4
gpt4 key购买 nike

Possible Duplicate:
Using PDFBox to write UTF-8 encoded strings to a PDF

我需要创建带有捷克国家字符的 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ákal pes pYes oves, pYes zelenou louku。”

我试图找到如何在 PDFBox 中设置 UTF-8 编码,但恕我直言,互联网上没有解决此问题的解决方案。

您有什么想法,如何在输出 PDF 中获得正确的文本吗?

谢谢。

最佳答案

我认为它的 PDType1Font.TIMES_ROMAN 字体不支持捷克国家字符。如果您可以设法获取捷克国家字符.ttf文件,则使用下面的方法获取PDFont,如下所示并使用相同的:

      PDFont font = PDTrueTypeFont.loadTTF( doc, new File( "CheckRepFont.ttf" ) );

这里 CheckRepFont.ttf 是您的字体文件名作为示例。用实际的更新它。

编辑:

  PDStream pdStream  = new PDStream(doc);
PDSimpleFont font = PDType1Font.TIMES_ROMAN;
font.setToUnicode(pdStream);

关于Java:使用 PDFBox 将国家字符写入 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274578/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com