web-dev-qa-db-ja.com

.PDFファイルからデータを抽出する

.PDFファイルからデータを抽出してSQL 2008にロードする必要があります。続行方法を誰かに教えてもらえますか?

23
S..

以下は、iTextSharpを使用してPDFからテキストデータを抽出する方法の例です。あなたはそれをあなたが望むとおりに正確に実行させるためにそれをいじる必要があるでしょう、それは良いアウトラインだと思います。 StringBuilderを使用してテキストを格納する方法を確認できますが、SQLを使用するように簡単に変更できます。

    static void Main(string[] args)
    {
        PdfReader reader = new PdfReader(@"c:\test.pdf");

        StringBuilder builder = new StringBuilder();

        for (int x = 1; x <= reader.NumberOfPages; x++)
        {
            PdfDictionary page = reader.GetPageN(x);
            IRenderListener listener = new SBTextRenderer(builder);
            PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
            PdfDictionary pageDic = reader.GetPageN(x);
            PdfDictionary resourcesDic = pageDic.GetAsDict(PdfName.RESOURCES);
            processor.ProcessContent(ContentByteUtils.GetContentBytesForPage(reader, x), resourcesDic);
        }
    }

public class SBTextRenderer : IRenderListener
{

    private StringBuilder _builder;
    public SBTextRenderer(StringBuilder builder)
    {
        _builder = builder;
    }
    #region IRenderListener Members

    public void BeginTextBlock()
    {
    }

    public void EndTextBlock()
    {
    }

    public void RenderImage(ImageRenderInfo renderInfo)
    {
    }

    public void RenderText(TextRenderInfo renderInfo)
    {
        _builder.Append(renderInfo.GetText());
    }

    #endregion
}
29

あなたがこの質問をしたと想像してみてください。 任意のテキストファイルからSQLテーブルにデータをロードするにはどうすればよいですか?問題は、テキストファイルを開いて読み取ることではなく、ファイルから意味のあるデータを自動的に取得することです。

したがって、 iText または pdfSharp のいずれかを使用してPDFファイルを読み取ることができますが、意味のあるデータを取得することが課題となります。 。

8
Conrad Frix

ツールを使用してPDFからテキストを抽出してから、ファイルをバイナリリーダーに読み込みます。次に、データベースに保存します..テキストを抽出します使用するいくつかのツールがあります。最初に言及するのは次のとおりです。

  • iTextsharp これは、 ダウンロード できるライブラリであり、=を処理するときに広範な作業と詳細な編集およびビルドを行うために使用されます。 PDFドキュメント、およびオンラインで利用できる多くの例があり、その詳細を説明した完全な本があります
  • 4
    Majd

    メタデータを意味する場合は、この質問を試してください(最初の回答)

    読み取り/変更PDF iTextSharpを使用したメタデータ

    ただし、データベースに関することは自分で行う必要があります。

    4
    Edo Mangelaars