从.PDF文件中提取数据

时间:2011-01-24 16:29:20

标签: c# ssis

我需要从.PDF文件中提取数据并将其加载到SQL 2008中。 任何人都可以告诉我如何继续吗?

4 个答案:

答案 0 :(得分:29)

以下是如何使用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
}

答案 1 :(得分:8)

想象一下,如果你问这个问题。如何将任意文本文件中的数据加载到SQL表中。挑战不是打开文本文件并阅读它,它会自动从文件中获取有意义的数据。

因此,您可以使用iTextpdfSharp来阅读PDF文件,但是获取有意义的数据将成为挑战。

答案 2 :(得分:4)

如果您的意思是元数据,请尝试这个问题(第一个答案)

Read/Modify PDF Metadata using iTextSharp

你必须自己做数据库的东西。

答案 3 :(得分:4)

您需要做的是使用工具首先从PDF中提取文本,然后将文件读入二进制阅读器..然后将其存储到数据库中......为了提取文本,有几种工具可供使用。首先要提到的是:

  • iTextsharp这是一个可以downloaded的库,用于在处理PDF文档时进行大量的工作和深入的编辑和构建,并且有很多例子
  • 第二个工具是Adobe PDF iFilter,这是adobe处理PDF修改和操作的工具。在线提供以及解释其内容的完整书籍。
  • 同样Foxit iFilter也是一个类似的程序集,可以满足您的要求!
  • PDF Box也将为您服务!

    这些是最知名且记录最完备的! 检查以下示例: 在代码项目上尝试以下示例:

  • Parsing PDF files in .NET using PDFBox and IKVM.NET.
  • A simple class to extract plain text from PDF documents with ITextSharp
  • Using the IFilter interface to extract text from various document types
  • {{3 }}
    这些工作做得很好,也不难理解。希望他们帮助你:-)

    最后一点:对我来说,我会选择iTextSharp,因为它是文档最齐全的库,有大多数可用的例子。