我有一组包含中欧字符的 pdf 文件,例如 č、Ď、Š 等。我想将它们转换为文本,我已经尝试pdftotext
并PDFBox
通过 Apache Tika 但总是其中一些没有正确转换。
奇怪的是,同一文本中的相同字符在某些地方被正确转换,而在另一些地方则不正确!一个例子是这个pdf。
在 pdftotext 的情况下,我使用这些选项:
pdftotext -nopgbrk -eol dos -enc UTF-8 070612.pdf
我的 Tika 代码如下所示:
String newname = f.getCanonicalPath().replace(".pdf", ".txt");
OutputStreamWriter print = new OutputStreamWriter (new FileOutputStream(newname), Charset.forName("UTF-16"));
String fileString = "path\to\myfiles\"
try{
is = new FileInputStream(f);
ContentHandler contenthandler = new BodyContentHandler(10*1024*1024);
Metadata metadata = new Metadata();
PDFParser pdfparser = new PDFParser();
pdfparser.parse(is, contenthandler, metadata, new ParseContext());
String outputString = contenthandler.toString();
outputString = outputString.replace("\n", "\r\n");
System.err.println("Writing now file "+newname);
print.write(outputString);
}catch (Exception e) {
e.printStackTrace();
}
finally {
if (is != null) is.close();
print.close();
}
编辑:忘了提到我在从 Acrobat Reader XI 转换为文本时也面临同样的问题。