惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
IT之家
IT之家
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
C
Check Point Blog
T
Tailwind CSS Blog
博客园 - Franky
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
博客园 - 叶小钗
J
Java Code Geeks
腾讯CDC
罗磊的独立博客
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
B
Blog
V
Visual Studio Blog
F
Fortinet All Blogs

博客园 - 佛西亚

https访问 asp.net Core上传文件 .NET Framework 4.0 DLL注册GAC 用SQL Server Profiler跟踪AX执行的SQL语句 D365升级包 Ant Design Pro V5 + Django Restful Framework Token认证前台实现 Ant Design Pro V5 + Django Restful Framework Token认证后台实现(二) Ant Design Pro V5 + Django Restful Framework Token认证后台实现(一) D365 FO产生随机字符串 D365 FO Array增加排序 D365 FO无法命中断点 Ant Design Pro V5 开发时使用后台服务数据 JavaScript跨域访问 同步数据库报错 DataEntity增加关联DataSource Java通过代理上传文件到Azure blob 使用iText7操作PDF D365 FO Json序列化和反序列化 D365 FO操作Azure Blob
使用iText 7读取PDF文件中的文本和图片
佛西亚 · 2021-09-04 · via 博客园 - 佛西亚

读取文本

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;
        }
    }