ItextSharp - diacritic chars

时间:2014-10-31 09:08:31

标签: java pdf itext diacritics

我通过ItextSharp库阅读pdf文档。 但这些文件是捷克语,使用变音符号(řěžšč等) 我怎么能读这个字符?任何的想法?或者,是否有一些解决方案可以替换正常情况下的这些字符? 这是我方法中的代码。感谢

 PdfReader reader = new PdfReader("M:/ShareDirs_KSP/RDM_Debtors/DMS_PROD/" + src);

    // we can inspect the syntax of the imported page
    String text = new String();
    for (int page = 1; page <= 1; page++) {

        text += PdfTextExtractor.getTextFromPage(reader, page);
    }

    reader.close();

1 个答案:

答案 0 :(得分:1)

我写了一个小概念证明来解析文件czech.pdf。该文件包含几个带变音符号的字符。它是在回答以下问题时创建的:Can't get Czech characters while generating a PDF

文本存储在文件中两次:一次使用简单字体,一次使用复合字体。在我的概念证明(名为ParseCzech)中,我将此PDF解析为使用UTF-8(UNICODE)编码的文件:

public void parse(String filename) throws IOException {
    PdfReader reader = new PdfReader(filename);
    FileOutputStream fos = new FileOutputStream(DEST);
    for (int page = 1; page <= 1; page++) {
        fos.write(PdfTextExtractor.getTextFromPage(reader, page).getBytes("UTF-8"));
    }
    fos.flush();
    fos.close();
}

结果是文件czech.txt

enter image description here

从屏幕截图中可以看出,文本被正确提取(但请确保您使用的查看器知道文件编码为UTF-8,否则您可能会看到奇怪的字符而不是实际文本)。

请注意,某些PDF不允许正确提取文本。以下视频对此进行了解释:http://www.youtube.com/watch?v=wxGEEv7ibHE

请分享您的PDF,以便StackOverflow上的人可以检查您是否因为代码中的错误而无法成功提取文本,或者您是否因为PDF没有成功而无法成功允许您提取文本。