我通过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();
答案 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:
从屏幕截图中可以看出,文本被正确提取(但请确保您使用的查看器知道文件编码为UTF-8,否则您可能会看到奇怪的字符而不是实际文本)。
请注意,某些PDF不允许正确提取文本。以下视频对此进行了解释:http://www.youtube.com/watch?v=wxGEEv7ibHE
请分享您的PDF,以便StackOverflow上的人可以检查您是否因为代码中的错误而无法成功提取文本,或者您是否因为PDF没有成功而无法成功允许您提取文本。