PDFBox 0.7.3将pdf转换为文本

时间:2013-05-04 13:21:44

标签: c# itextsharp pdfbox pdftotext

我想将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));

1 个答案:

答案 0 :(得分:1)

您的第一次尝试应该尝试使用当前版本的PDFBox。您的0.7.3版本可以追溯到 2006年! PDFBox同时已成为一个Apache项目,位于here: http://pdfbox.apache.org/,当前版本(截至2013年5月)为1.8.1。我非常确定PDFBox nowerdays支持PDF对象流和交叉引用流,它们是PDF参考版本1.5中的新增内容,Adobe Acrobat 6版本是为

而构建的。

如果这不起作用,您可能想尝试其他PDF库,例如如果AGPL(或购买许可证)对您没有问题,请iText(或您的案例中为iTextSharp)版本5.4.x。

有关使用iText(夏普)进行文本解析的信息,请参阅第15章标记内容和解析PDF {/ em> iText in Action — 2nd Edition。可以在线找到该章中的示例: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(夏普)版本都无法解析您的PDF,您可能希望发布样本进行检查;有一些方法可以从PDF中删除文本解析所需的所有信息......