2013-05-04 142 views
0

我要PDF文件轉換爲文本文件,但一些PDF文件不PDFBOX DLL作爲Acrobat版本所以在Acrobat 5.x的新工作PDFBox的0.7.3將PDF轉換爲文本

請告訴我我做的事?

output.WriteLine("Begin Parsing....."); 
output.WriteLine(DateTime.Now.ToString()); 

PDDocument doc = PDDocument.load(path); 
PDFTextStripper stripper = new PDFTextStripper(); 

output.Write(stripper.getText(doc)); 
+0

爲什麼用標記itextsharp標記此問題?你的問題只是關於PDFBox ... – 2013-05-06 12:34:15

回答

1

您的第一次嘗試應該是嘗試使用當前版本的PDFBox。您的0.7.3版本可追溯至2006年的與此同時,PDFBox已成爲Apache項目,位於here: http://pdfbox.apache.org/,當前版本(截至2013年5月)爲1.8.1。我非常肯定,PDFBox nowerdays不支持PDF參考版本1.5中新增的PDF對象流和交叉參考流,Adobe Acrobat 6的版本已經構建爲

如果這樣做不起作用,您可能想要嘗試其他PDF庫,例如iText(或iTextSharp在你的情況下)版本5.4.x如果AGPL(或者購買許可證)對你來說沒有問題。

上利用iText(夏普)的文本分析的信息可以在第15章標明含量被發現和解析的iText in Action — 2nd Edition 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(夏普)版本可以解析您的PDF,你可能要張貼檢查的樣本;有辦法從PDF中刪除文本解析所需的所有信息...

+0

謝謝你我測試它,但文本顯示沒有格式化 – 2013-05-07 06:59:04

+0

正確,你要求*文本*,或者*富文本*或*格式文本*或其他東西線。此外,使用PDFBox PDFTextStripper的示例在我對這裏的某些文檔進行測試時不會顯示格式。 – mkl 2013-05-07 08:12:54

+0

我想檢查PDF文件是否包含文本(任何文本沒有具體)我看到許多特定文本的答案,我不需要,我用這個代碼System.IO.StreamReader Reader = new System.IO.StreamReader(path) ; string fileContent = Reader.ReadToEnd(); if(fileContent.Contains(「」)) { }包含必須採取任何想法,但我想測試如果PDF有任何文本。 – 2013-05-07 09:01:36