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;
            }
        }
  • 相关阅读:
    LOJ#3212. 「CSP-S 2019」划分
    矩阵乘法
    SSF信息社团4月训练题目整理
    AtCoder Regular Contest 116
    SSF信息社团3月训练题目整理
    Codeforces Round #704 (Div. 2)
    SSF信息社团寒假训练题目整理(三)
    关于 zzt 得 0.8 分这件事
    Luogu P7244 章节划分
    SSF信息社团寒假训练题目整理(二)
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/15226603.html
Copyright © 2011-2022 走看看