当前位置: 首页 > news >正文

C#使用PdfiumViewer库处理PDF文件的实践方法

1、简述在 C# 项目中处理 PDF 是一个高频但复杂的需求例如预览 PDF 页面将 PDF 转为图片JPG / PNG / TIFF获取 PDF 页数、尺寸信息提取文本内容配合 OCR、归档、批处理系统使用相比 iText偏编辑/生成或 PDFBoxJavaPdfiumViewer 更适合“解析 渲染”场景尤其在 Windows 桌面程序WinForms / WPF中表现非常优秀。2、什么是 PdfiumViewerPdfiumViewer是一个基于Google PDFium 引擎的 .NET 封装库主要特点高性能 PDF 渲染原生支持 PDF → BitmapAPI 简洁易上手非商业许可免费仅支持 Windows依赖 pdfium.dll适合以下场景WinForms / WPF PDF 预览器PDF 批量转图片PDF 页面级解析与 OpenCV / OCRTesseract联动PdfiumViewer 的核心能力功能是否支持获取 PDF 页数✅渲染为 Bitmap✅指定 DPI 渲染✅提取文本✅页面裁切✅编辑 PDF❌非设计目标3、安装 PdfiumViewer1、NuGet 安装1dotnet add package PdfiumViewer2、引入 pdfium.dll关键PdfiumViewer必须依赖 pdfium.dllx86 / x64 需与程序一致常用来源PdfiumViewer.Native.x86PdfiumViewer.Native.x64推荐方式1dotnet add package PdfiumViewer.Native.x64WinForms / WPF / Console 都适用4、实践样例1234567usingPdfiumViewer;using(var document PdfDocument.Load(sample.pdf)){intpageCount document.PageCount;Console.WriteLine($PDF 页数{pageCount});}这是所有 PDF 处理流程的起点。实战一PDF 渲染为 Bitmap核心功能单页转图片1234567891011121314151617usingPdfiumViewer;usingSystem.Drawing;using(var document PdfDocument.Load(sample.pdf)){intpageIndex 0;// 300 DPI 高清渲染var image document.Render(pageIndex,300,300,PdfRenderFlags.Annotations);image.Save(page1.png, System.Drawing.Imaging.ImageFormat.Png);}参数说明参数含义pageIndex从 0 开始dpiX / dpiY分辨率建议 200–300RenderFlags是否包含注释实战二PDF 全量转图片批量处理12345678910111213141516usingPdfiumViewer;usingSystem.Drawing.Imaging;voidConvertPdfToImages(stringpdfPath,stringoutputDir){usingvar document PdfDocument.Load(pdfPath);Directory.CreateDirectory(outputDir);for(inti 0; i document.PageCount; i){usingvar image document.Render(i, 300, 300, PdfRenderFlags.Annotations);stringpath Path.Combine(outputDir, $page_{i 1}.jpg);image.Save(path, ImageFormat.Jpeg);}}常用于PDF → OCRPDF → 归档图片PDF → OpenCV 图像处理流水线实战三获取 PDF 页面尺寸像素 / 物理尺寸12345678usingPdfiumViewer;usingvar document PdfDocument.Load(sample.pdf);var size document.PageSizes[0];Console.WriteLine($宽{size.Width} pt);Console.WriteLine($高{size.Height} pt);PDF 中单位是Point1 pt 1/72 inch转为像素123intdpi 300;intwidthPx (int)(size.Width / 72 * dpi);intheightPx (int)(size.Height / 72 * dpi);对齐 OpenCV、图像裁切时非常关键。实战四提取 PDF 文本内容123456usingPdfiumViewer;usingvar document PdfDocument.Load(sample.pdf);stringtext document.GetPdfText(0);Console.WriteLine(text);注意事项仅适用于文本型 PDF扫描件图片 PDF需 OCR表格结构会被打平常见用途关键字定位文档分类索引构建实战五结合 WinForms 显示 PDF 页面12345678910usingPdfiumViewer;PdfDocument document PdfDocument.Load(sample.pdf);pictureBox1.Image document.Render(0,pictureBox1.Width,pictureBox1.Height,true);实际项目中可实现上一页 / 下一页缩放滚动预览实战六PDF 页面裁切后渲染区域提取1234567891011121314151617181920212223usingPdfiumViewer;usingSystem.Drawing;usingvar document PdfDocument.Load(sample.pdf);var pageSize document.PageSizes[0];RectangleF crop newRectangleF(0,0,pageSize.Width / 2,pageSize.Height / 2);usingvar image document.Render(0,300,300,crop,PdfRenderFlags.None);image.Save(crop.png);常用于表格区域识别公章 / 签名区域截取OCR 局部增强5、总结PdfiumViewer 是 C# 世界中处理 PDF 解析与渲染的利器简单高效稳定非商业免费如果你的项目涉及PDF → 图片OCR 前处理WinForms / WPF 桌面工具批量文档处理PdfiumViewer 是非常值得优先选择的方案。
http://www.rkmt.cn/news/1370381.html

相关文章:

  • 大白菜与杂草识别分割数据集labelme格式2006张2类别
  • 在C#中根据控件名称获取控件实例的方法
  • 智慧医疗颈椎椎骨识别分割数据集labelme格式1054张6类别
  • QQ音乐格式解密终极指南:qmcdump带你打破数字音乐枷锁
  • 【DeepSeek审计日志权威指南】:20年SRE亲测的5大误配置陷阱与实时合规加固方案
  • 告别代码迷宫,拥抱可视化开发:Understand Anything 重塑代码理解新范式
  • 老师上课没空做笔记?2026年这3款AI整理工具,下课直接梳理课堂重点
  • 2026年企业孵化服务品牌推荐,科技政策申报/科技企业孵化器/企业孵化服务,企业孵化服务机构选哪家 - 品牌推荐师
  • 告别低效操作!用League Akari英雄联盟本地化效率工具提升你的游戏表现
  • Python元编程深度实战:装饰器、描述符与元类的高级应用
  • 如何快速掌握大众点评数据采集:智能爬虫实战指南
  • 终极指南:使用RPFM免费工具快速制作《全面战争》游戏模组
  • 内联的边界:为什么 AI 框架中有些函数反而不应该被 inline
  • 微信小程序数据可视化:为什么ECharts组件是你的最佳选择?
  • 如何搭建「热点资讯 → 微信公众号」自动发布系统
  • 交通运输部公路局:2026年春节假期公路交通服务保障典型案例集
  • BilibiliDown:解放你的B站收藏夹,让精彩视频永不消失
  • Windows网络性能评估终极指南:iperf3-win-builds深度解析与实战应用
  • 【Google官方未公开】Gemini免费层底层计费逻辑揭秘:按token粒度精算,92%用户多花了37%配额
  • taotoken助力企业将内部知识库问答系统接入大模型
  • 每日一个开源项目 #110:ai-engineering-from-scratch - 从零构建 AI 工程全栈能力
  • DeepSeek工具调用失败率突增237%?紧急发布:2024Q3工具注册中心变更公告与向后兼容迁移方案(72小时倒计时)
  • 基于SpringBoot的流浪动物救助与领养系统毕业设计源码
  • Palworld存档迁移终极解决方案:palworld-host-save-fix完整教程
  • VideoSrt:重新定义本地化视频字幕生成的技术架构与实践范式
  • 如何高效使用Monitorian:3个智能自动化技巧解放你的双手
  • 从0到1跑通DeepSeek-Coder:火山引擎Serverless推理服务全流程(含Code Interpreter沙箱安全加固步骤)
  • DeepSeek本地部署性能压测报告:单A10 24G实现实时流式响应<320ms(附Prometheus+Grafana监控看板模板)
  • UnityExplorer终极指南:免费开源的Unity游戏调试神器
  • 【DeepSeek端侧部署黄金标准】:基于Jetson Orin NX的12.8 TOPS实测基准,附可复现的ONNX Runtime+Vulkan后端配置清单