我想将pdf文件转换为文本文件,但有些pdf文件不能与pdfbox dll一起工作,因为acrobat的版本低于acrobat 5.x
请告诉我该怎么做?
output.WriteLine("Begin Parsing.....");
output.WriteLine(DateTime.Now.ToString());
PDDocument doc = PDDocument.load(path);
PDFTextStripper stripper = new PDFTextStripper();
output.Write(stripper.getText(doc));
您应该首先尝试使用当前版本的PDFBox。你的0.7.3版本可以追溯到2006! PDFBox同时已经成为一个Apache项目,位于这里:http://pdfbox.apache.org/,当前版本(截至2013年5月)是1.8.1。我很确定PDFBox现在确实支持PDF对象流和交叉引用流这是PDF参考版本1.5的新功能,Adobe acrobat6是为
创建的版本如果这不起作用,你可能想尝试其他PDF库,例如iText(或iTextSharp在你的情况下)5.4版。如果AGPL(或购买许可证)对您来说没有问题的话。
关于使用iText(Sharp)进行文本分析的信息可以在iText in Action - 2nd Edition的第15章标记内容和解析PDF中找到。该章的示例可以在网上找到:Java和. net。
对于第一个测试,样例ExtractPageContentSorted2.cs/ExtractPageContentSorted2.java将是一个很好的开始。中央代码:
PdfReader reader = new PdfReader(PDF_FILE);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++) {
sb.AppendLine(PdfTextExtractor.GetTextFromPage(reader, i));
}
如果当前的PDFBox版本和当前的iText(Sharp)版本都不能解析您的PDF,您可能需要发布一个样本进行检查;有一些方法可以从PDF中删除文本解析所需的所有信息…