2017-02-17 9 views
1

私のPDFが人物のリストが含まれており、私は現在、これらの人々を取得するために理想的なソリューションを探していますが、いくつかのケースでは、私はこの文を読んでしまった:タグ付きPDFの価値をどのように読み取ることができますか?

PDFファイルにはないので、それはできません構造を持っています。

ここでは、PDFの「構造」を示すタグ付きPDFがあります。私の場合、タグ付きのPDFがあります。ここでは、人の各価値には自分の行があり、それぞれの人は列にあります。これは、各自の価値を得るために、PDF内のこの「表」を解析する簡単な方法がある/そうする必要があることを意味します。

私の質問は次のとおりです。タグ付きPDFに構造がある場合、どのようにして恩恵を受けることができるので、必要なすべての値を読み取ることができますか?

(サイド小さな質問:ExcelのアプリケーションへのPDFは、Excelファイルを作成するPDFからタグを使用していますか?)

EDIT#1:

これは、PDFファイルの例です。 enter image description here

私はすでにSyncFusionであなたの提案方法@Laraを試してみましたが、問題は、私が受け取る文字列です:

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

このような出力ではRegexを使用することはできません。問題は、この場合のPeterが姓または姓に属していて、Smithが通りの一部である可能性があるかどうかわからないことです。だから私はそれを使うことができないのです。それが私がPDFでタグを使うことができる解決策を探している理由です。すべてが分かれているので、タグから値を取得する方法が必要です。 enter image description here

EDIT#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は、PDFファイルの内容を読むために使用できるオープンソースの.netライブラリです。以下のコードは同じです。

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をString.Nowに抽出して、あなたのロジックを追加し、あなたが望むものを得るために文字列で利用できるメソッドをたくさん持っています。 – Lara

+0

あなたの情報については、値を行ごとに文字列に読み込みます。 ""(Space)のような区切り文字に基づいて、文字列配列に追加します。現在、どのような情報が文字列配列のどの場所にあるか調べます。それを取得し、あなたの要件に応じて使用してください... – Lara

0

現在Syncfusionには、タグ付きPDFドキュメントからテキストを抽出する機能がありません。ただし、タグ付きPDF文書のの出力構造と、そこからテキストを抽出しようとしているPDF文書を提供してください。

+0

私の質問を編集する – SovietPanda

関連する問題