21

表計算データを含むPDFドキュメントがたくさんあり、スプレッドシートやデータベースなどに保存するために、より読みやすい形式に抽出する必要があります。

PDFから表形式のデータを、アプリとネイティブに統合するか、コマンドラインを介して受動的に統合するか、code(.net)でプロセスをループすることで、より読みやすい形式にまとめて取得できるもの(できれば無料)はありますか?

テーブルが維持されている限り、実際には任意の形式(doc、html)にすることができます。

私がこれまでに見つけたものはすべて、1回限り(一度に1つのドキュメントのみを実行し、何百もありますが、発生していません)であるか、テーブル構造を維持していません。

アイデアがあれば投稿してください。

4

9 に答える 9

13

これは非常に面倒です。一般に、PDFファイルのテキストコンテンツの抽出は、PDFが実行したいことの粒度に反して実行されます。

テキストを取り出そうとすることから始めます。これは、PDFの作成方法に応じて、多かれ少なかれ成功する可能性があります。開始する場所の1つは、GhostScriptまたはpstotextです。それが失敗した場合、この男はテキスト抽出ツールのリストを持っています。テキストストリームを取得したら、プログラムで表形式の構造を再構築してみてください。

最後に、あなたがひどく体調が悪い場合、そしてPDFが協力しない場合、あなたはOCRのことをすることができます。適切な長期的解決策は、最初にデータを適切な形式にすることです。これは、単一の、大規模で、苦痛を伴う、おそらく部分的に手動のプロセスを実行することによって行われます。または、ソースに移動して、データをより使いやすい形式で提供することを提案します。

より具体的なPDFサンプルファイルを提供できれば、より良いまたはより正確な答えがあるかもしれません...これに対する一般的な解決策はありません。可能であれば、特定のソースデータに合わせて調整する必要があります。

一般的な質問に対するこのかなり指摘された応答に注意してください...あなたが目の前に問題を抱えているという事実には役立ちませんが、明確な答えがない理由を上司に説明するときに役立つトップカバーになるかもしれませんか?;-)

新しいSOの質問がポップアップし、このライブラリ(iTextSharp )を参照しました。これはおそらく関連しているように見えます。SOの質問:抽出するための最良の方法...

于 2010-10-15T16:22:03.527 に答える
3
  1. PDFファイル形式が抽出可能な構造化データのホスティングに適していると決して考えられるべきではない理由の背景については、次の記事を参照してください。

  2. PDFから表形式のデータを抽出するためのツールの驚くべきファミリー(スキャンされたページでない限り)については、ポイント「1」と矛盾します。上記のリンクを参照してください。

于 2014-09-29T23:35:15.300 に答える
2

IvyTools IvyPdfをチェックしてください:www.ivytools.netテーブルやその他のデータを抽出できます。ドキュメントが適切に構成されている場合、セットアップは非常に簡単ですが、かなり複雑なシナリオにも対応できます。個人使用は無料です。

于 2018-04-10T22:17:17.567 に答える
1

あなたの要件を考えると、あなたの質問に対する率直な答えはそれが全く不可能であるということでしょう。その理由は、word / excelとは異なり、PDF仕様にはTableというオブジェクトがないためです。これらのPDFドキュメントに表示されるテーブルは、テーブルのように描かれた一連の長方形であり、一連の線を使用してテーブルのような構造を描画する場合があるため、これらのPDFファイルを作成したのはPDFライター次第です。

しかし、 PDFファイル仕様に基づいて独自のパーサーを作成することもできますが、独自のパーサーを実装することを選択した場合、それでも困難な作業であり、かなりの数のPDFドキュメントで機能するパーサーを取得するには数か月かかります。

場合によっては、独自のパーサーを作成することにしました。以下の記事はあなたにジャンプスタートを与えるでしょう。 コードプロジェクトの記事

于 2010-10-17T18:51:57.103 に答える
1

PDF形式は、固有の形式などを持たない文字のコレクションとして作成されます。PDFは、OCRを通過したページと同じように考えることができ、そこから文字とその座標を取得します。残りはあなた次第です。レイアウト、形式、列、および最終的なテーブルを把握します。

于 2010-10-17T18:56:49.883 に答える
0

すべてのデータがテキストデータの場合は、いつでもiTextSharpを使用できます。これは無料で、必要なのは「itextsharp.dll」だけです。

http://sourceforge.net/projects/itextsharp/

これは、PDFからテキストを読み取るための簡単な関数です。

Public Shared Function GetTextFromPDF(PdfFileName As String) As String
    Dim oReader As New iTextSharp.text.pdf.PdfReader(PdfFileName)

    Dim sOut = ""

    For i = 1 To oReader.NumberOfPages
        Dim its As New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy

        sOut &= iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(oReader, i, its)
    Next

    Return sOut
End Function

それは少なくともあなたに最初のテキストを与えるでしょう。

于 2011-09-01T18:27:15.717 に答える
0

あなたが言う時

私がこれまでに見つけたものはすべて...一度に1つのドキュメントしか実行しません

「プログラミングインターフェイスのないGUIアプリ」という意味だと思います。

この場合、Microsoft UIオートメーションを使用して、プログラムでアプリを制御し、必要な処理を実行できます。

UIA ...は、ユーザーインターフェイスの要素とコントロールに関する情報を公開および収集して、ユーザーインターフェイスのアクセス可能性とソフトウェアテストの自動化をサポートする手段を提供します...そしてWin32と.NETFrameworkの両方と互換性があります。

于 2010-10-15T00:37:17.547 に答える
0

pdf2textなどのツールを使用してPDFからプレーンテキストを抽出しようとしましたが、元のバージョンを正確に再構築するには、テーブルとフォーマットおよびレイアウト情報の多くが失われます。

PDF APIを使用してテキストボックスと行のx、y位置を抽出し、その情報を使用してテーブルを再構築する方が成功する可能性があります。

このアプローチを試みるサードパーティのツールとAPIがいくつかあるようです。

有料版のSolidFrameworkは、PDFからExcelおよびCSVにテーブルを自動的に、そして私が投げたPDFからかなりうまく抽出できるようです。

無料のPDFMechanicは、Solid Frameworkにラップされた小さなGUIプログラムのようです。これを使用して、PDF抽出手法を試すことができます。

プログラムから呼び出すことができる無料のツールpdf2tableもありますが、私はまだ試していません。

于 2011-10-11T09:14:14.097 に答える
0

私は最近この問題に遭遇しました。

私が見つけた別の解決策は、AdobeでPDFドキュメントを開き、それをxmlにエクスポートすることでした。少なくとも私のPDFでは、テーブル情報が保持されていたので、プログラムでXMLを操作して、Excelなどの表形式のファイルを生成することができました。

私が遭遇したもう1つの問題は、Adobeでは一度に1つのファイルしかエクスポートできず、ファイルがたくさんあることでした。幸い、Adobeにはマージ機能もあります。最終的に、すべてのファイルをマージしてから、それらを1つの大きなXMLファイルとしてエクスポートし、そのファイルを操作して必要なものを生成しました。

于 2015-05-13T15:45:00.527 に答える