【发布时间】:2013-06-24 09:27:07
【问题描述】:
我有一组包含中欧字符的 pdf 文件,例如 č、Ď、Š 等。我想将它们转换为文本,我已经通过 Apache Tika 尝试了pdftotext 和PDFBox,但它们中的一些总是没有正确转换。
奇怪的是,同一文本中的相同字符在某些地方被正确转换,而在其他地方则不正确!一个例子是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 转换为文本时也遇到了同样的问题。
【问题讨论】:
标签: java pdfbox apache-tika pdf-conversion pdftotext