2017-02-17 50 views
1

我的PDF包含的人員名單,目前我正在尋找一個理想的解決方案,使這些人,但在某些情況下,我結束了讀這句話:如何從帶標籤的pdf中讀取值?

因爲PDF文件沒有不可能有一個結構。

現在的事情是有標籤的PDF文件,顯示您的PDF的「結構」。在我的情況下,我有一個帶標籤的PDF,其中每個人的價值有它自己的行,每個人都在一列。這意味着在我的PDF中通過這個「表格」來解析每個人的價值是一種簡單的方法,對吧?

所以我的問題是:當帶標籤的PDF文件有一個結構,那麼我怎樣才能從中受益,所以我可以讀取我需要的所有值?

(邊小問題:是PDF使用標籤從PDF創建Excel文件的Excel應用程序?)

編輯#1:

這是PDF文件的例子: enter image description here

我已經嘗試過你建議的方式@Lara與SyncFusion但問題是我收到的字符串:

John Peter Smith Smithstrasse 1 0101 Smithikon am See 010 010 01 01 020 020 02 02 

使用這種輸出的正則表達式是不可能的。問題是你永遠不知道在這種情況下Peter是屬於姓氏還是姓氏,Smith可能是街道的一部分。這就是爲什麼我不能使用它,這就是爲什麼我正在尋找一種解決方案,我可以使用PDF中的標籤。一切都很好分開,所以我只需要一種方法來從標籤中獲取值。 enter image description here

編輯#2: 作爲@Balasubramanian希望這裏是一個標籤PDF例如: http://www.sh.ch/fileadmin/Redaktoren/Dokumente/Aufsichtsbehoerde_ueber_das_Anwaltswesen/Verzeichnis_SH_Anwaelte.pdf

本PDF與syncfusion給出準確的輸出我的編輯#1添加。

我對輸出沒有任何特殊要求,所以如果我收到JSON文件,數組或類似的數據並不重要。另一方面,重要的是每個人的每個價值是分開的,所以我可以得到這個價值。但最大的問題是我該如何做到這一點。標籤必須保存在PDF文件中(元數據?)。

回答

0

ITextSharp是一個開源的.net庫,您可以使用它來讀取PDF文件的內容。下面的代碼也是一樣的。

public static string GetTextFromAllPages(String pdfPath) 
{ 
    PdfReader reader = new PdfReader(pdfPath); 

    StringWriter output = new StringWriter(); 

    for (int i = 1; i <= reader.NumberOfPages; i++) 
     output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy())); 

    return output.ToString(); 
} 

您可以從https://sourceforge.net/projects/itextsharp/或過的NuGet獲取庫。只需下載並引用您的應用程序並使用上面的代碼片段即可。您將能夠將PDF提取爲文本。

更新:

下面是我建議你試試..

string pDFExtract = "John Peter Smith Smithstrasse 1 0101 Smithikon am See 010 010 01 01 020 020 02 02"; 

string[] arrpDFExtract = pDFExtract.Split(' '); 

string Name = arrpDFExtract[0] +" "+ arrpDFExtract[1]; 

在這裏,你必須找出哪些是字符串數組的大小,並根據您要建立條件,你會得到你想要的精確值...陣列的狀況分析長度和相應的值你必須做..後面只是用上面的方式,並從PDF中獲取的東西。

我已經做了大量的文件處理使用這種算法建設,每件事情就像魅力一樣工作。

+0

不是我正在尋找的答案。我知道這可能會起作用,但我猜,這將會一行一行地打印,但我需要將這些值分開。由於格式的原因,我無法使用Regex從行中獲取它們。 – SovietPanda

+0

你有什麼樣的陣型。以上解決方案將PDF解壓縮爲字符串。現在,您可以在字符串中使用大量方法來添加邏輯並獲取所需內容。 – Lara

+0

對於您的信息,請逐行讀取字符串中的值。然後拆分行基於一些分隔符,如「」(空格),並添加到字符串數組..現在找出哪些信息可用在字符串數組的什麼地方。根據您的要求獲取並使用... – Lara

0

目前Syncfusion不支持從標記PDF文檔中提取文本。但是,您能否提供預期的輸出結構來自加標籤的PDF文檔以及您試圖從中提取文本的PDF文檔。

+0

我編輯我的問題 – SovietPanda