Java的:写使用PDFBox的[复制]国家字符PDF(Java: Write national c

2019-10-17 09:31发布

可能重复:
使用PDFBox的写UTF-8编码字符串到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ákalPES pYes oves,pYes zelenou louku。”

我试图找到如何设置UTF-8编码在PDFBox的,但恕我直言没有这只是没有办法在互联网上。

你有什么想法,如何让在输出PDF右侧的文本?

谢谢。

Answer 1:

我认为它PDType1Font.TIMES_ROMAN这是不支持你的捷克民族文字字体。 如果你能设法得到.ttf文件的Czech national characters ,然后用下面让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: Write national characters to PDF using PDFBox [duplicate]