开发者

Extract Data from .PDF files

开发者 https://www.devze.com 2023-02-06 17:04 出处:网络
I need to extract dat开发者_JAVA技巧a from .PDF files and load it in to SQL 2008. Can any one tell me how to proceed??Here is an example of how to use iTextSharp to extract text data from a PDF.You\'l

I need to extract dat开发者_JAVA技巧a from .PDF files and load it in to SQL 2008. Can any one tell me how to proceed??


Here is an example of how to use iTextSharp to extract text data from a PDF. You'll have to fiddle with it some to make it do exactly what you want, I think it's a good outline. You can see how the StringBuilder is being used to store the text, but you could easily change that to use 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
}


Imagine if you asked this question. How can I load data from arbitrary text files into a SQL table. The challenge isn't opening the text file and reading it, its getting meaningful data out of the files automatically.

So you can use either iText or pdfSharp to read the PDF files, but its the getting meaningful data out that's going to be the challenge.


what you need to do is to use a tool to extract the text from PDF first and then read the file into a binary reader .. then store it into your database .. for extracting the text there are several tools to use. the first to mention are:

  • iTextsharp which is a Library that can be downloaded and used to do extensive work and in-depth edits and builds when dealing with PDF documents, and there are a lot of examples available online along with a full book that explains the ins and outs of it
  • The second tool is Adobe PDF iFilter which is a tool from adobe to deal with PDF modifications and manipulation.
  • Also Foxit iFilter also is a similar assembly that can do just what u r asking for!
  • PDF Boxwill also serve you!

    these are the most well known and well documented ones! check the following examples: try the following examples on code project:

  • 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
  • A parser for PDF Forms written in C#.NET
    These do the job and they ain't hard to understand. Hope they help you :-)

    A final note: as for me, i would iTextSharp as it's the most well documented library with most available examples.


    If you mean metadata, try this question (first answer)

    Read/Modify PDF Metadata using iTextSharp

    You'll have to do the database stuff yourself though.

  • 0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号