Extract Data from .PDF files

后端 未结 4 1936
Happy的楠姐
Happy的楠姐 2020-12-07 17:01

I need to extract data from .PDF files and load it in to SQL 2008. Can any one tell me how to proceed??

相关标签:
4条回答
  • 2020-12-07 17:30

    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.

    0 讨论(0)
  • 2020-12-07 17:36

    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 讨论(0)
  • 2020-12-07 17:40

    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
    }
    
    0 讨论(0)
  • 2020-12-07 17:47

    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.

0 讨论(0)
提交回复
热议问题