C#从PDF提取图片的完整流程
目录
- 引言
- 1. 为什么需要提取 PDF 图片?
- 2. 准备工作
- 3. 提取 PDF 图片信息
- 4. 高级用法(可选)
- 5. 总结
引言
在实际开发中,PDF 文件中常包含文本、表格和图片。图片可能是合同中的签名、发票上的印章,或者报告、宣传资料中的图表。
本文将介绍如何使用 Spire.PDF for .NET 提取 PDF 中的图片,并保存为独立图像文件,重点演示 PdfImageHelper
的用法。
1. 为什么需要提取 PDF 图片?
- 保存原始图像:方便后续处理或归档;
- 数据分析:图表或图片信息可以进一步处理或识别;
- 文档拆分:将 PDF 中的图片单独存储或用于报告生成。
2. 准备工作
- 安装 Spire.PDF for .NET(支持 .NET Framework 和 .NET Core):
Install-Package Spire.PDF
- 引用命名空间:
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; using System.IO;
3. 提取 PDF 图片信息
PdfImageHelper
是 Spire.PDF 中用于处理 PDF 图片的核心类,它可以:
- 获取页面上所有嵌入的图片对象;
- 提供图片的位置信息、大小、格式等;
- 将图片提取为
System.Drawing.Image
对象。
示例代码如下:
using Spire.Pdf; using Spire.Pdf.Graphics; using System; using System.Drawing; using System.IO; class ExtractPdfImages { static void Main() { // 加载 PDF 文件 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Sample.pdf"); int imageIndex = 1; // 遍历每一页 foreach (PdfPageBase page in pdf.Pages) { // 使用 PdfImageHelper 获取页面上的所有图片信息 PdfImageInfo[] images = PdfImageHelper.GetImages(page); foreach (PdfImageInfo info in imagjses) { // 提取图片对象 Image img = info.Image; http://www.devze.com // 保存为独立文件 string fileName = $"Image_{imageIndex}.png"; img.Save(fileName, System.Drawing.Imaging.ImageFormat.Png); Console.WriteLine($"已提取图片: 编程{fileName}"); imageIndex++; } } Console.WriteLine("PDF 图片提取完成!"); } }
4. 高级用法(可选)
- 获取图片位置和大小:通过
PdfImageInfo.Rect
可以获取图片在页面中的矩形区域; - 按页面或区域过滤:只提取指定页或特定区域的图http://www.devze.com片;
- 支持多种格式:可保存为 PNG、JPEG、BMP 等。
例如,只提取第一页的所有图片:
PdfPageBase firstPage = pdf.Pages[0]; PdfImageInfo[] firstPageImages = PdfImageHelper.GetImages(firstPage);
5. 总结
本文介绍了在 C#python 中使用 Spire.PDF for .NET 提取 PDF 图片的完整流程:
- 加载 PDF 文件;
- 使用
PdfImageHelper
获取图片信息; - 将图片保存为独立文件;
- 可选:获取位置、大小或按区域提取。
通过这种方式,开发者可以快速提取 PDF 中的所有图片,应用于报表处理、合同归档或数据分析场景。
到此这篇关于C#从PDF提取图片的操作指南的文章就介绍到这了,更多相关C#从PDF提取图片内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论