zoukankan      html  css  js  c++  java
  • 使用iText 7读取PDF文件中的文本和图片

    读取文本

    using (PdfReader reader = new PdfReader(fileName))
                {
                    using (PdfDocument pdfDocument = new PdfDocument(reader))
                    {
                        for (int i = 1; i <= pdfDocument.GetNumberOfPages(); i++)
                        {
                            string pdfContentString = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(i));
                            MessageBox.Show(pdfContentString);
                        }
                    }
                }

    读取图片

    using (PdfReader reader = new PdfReader(fileName))
                {
                    using (PdfDocument pdfDocument = new PdfDocument(reader))
                    {                    
                        IEventListener strategy = new ImageRenderListener(imageFileName);
                        PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);
                        for (var i = 1; i <= pdfDocument.GetNumberOfPages(); i++)
                        {
                            parser.ProcessPageContent(pdfDocument.GetPage(i));
                        }
                    }
                }
    
    
    public class ImageRenderListener : IEventListener
        {
            string format;
            int index = 0;
            public ImageRenderListener(string format)
            {
                this.format = format;
            }
    
            public void EventOccurred(IEventData data, EventType type)
            {
                if (data is ImageRenderInfo imageData)
                {
                    try
                    {
                        PdfImageXObject imageObject = imageData.GetImage();
                        if (imageObject != null)
                        {
                            File.WriteAllBytes(string.Format(format, index++, imageObject.IdentifyImageFileExtension()), imageObject.GetImageBytes());
                        }
                    }
                    catch
                    {                    
                    }
                }
            }
    
            public ICollection<EventType> GetSupportedEvents()
            {
                return null;
            }
        }
  • 相关阅读:
    分数加减法
    两点距离
    1的个数
    Swift 了解(1)
    ARC快速入门
    ARC基本概念
    autorelease注意事项
    autorelease基本使用
    NSTimer的使用
    如何监听控件的行为
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/15226603.html
Copyright © 2011-2022 走看看