当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,避免每次都要从 PDF 中查找。本文将介绍如何使用C#通过代码从PDF文档中提取图片,包含以下两个示例:
文章目录
- C# 提取指定 PDF 页面中的图片
- C# 提取PDF 文档中所有图片
提取PDF图片需要用到 Spire.PDF for .NET 库。可以通过此链接下载产品包后手动添加引用,或者直接通过NuGet安装。
C# 提取指定 PDF 页面中的图片
PdfImageHelper
类可用于帮助用户管理 PDF 文档中的图像,要从某个指定的PDF页面中提取图片,参考以下步骤:
- 使用
PdfDocument
类的LoadFromFile()
方法加载 PDF 文件。 - 通过
PdfDocument
类的Pages[index]
属性获取指定页面。 - 创建
PdfImageHelper
对象,然后使用其GetImagesInfo()
方法获取页面中图像信息集合。 - 遍历图像信息集合,并使用
PdfImageInfo.Image.Save()
方法将每一张图片以PNG格式储存到指定文件路径。
C# 代码:
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;namespace ExtractImagesFromSpecificPage
{class Program{static void Main(string[] args){// 加载PDF文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("E:\\PythonPDF\\AI.pdf");// 获取第一页PdfPageBase page = pdf.Pages[0];// 创建PdfImageHelper对象PdfImageHelper imageHelper = new PdfImageHelper();// 获取页面上的图片信息 PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(page);// 遍历图片信息for (int i = 0; i < imageInfos.Length; i++){// 获取某个指定图片信息PdfImageInfo imageInfo = imageInfos[i];// 获取指定图片Image image = imageInfo.Image;// 将图片保存为png格式image.Save("图片\\图-" + i + ".png");}pdf.Dispose();}}
}
C# 提取PDF 文档中所有图片
要获取整个PDF文档中的图片,就需要遍历每一页然后再提取,具体参考以下步骤:
- 使用
PdfDocument
类的LoadFromFile()
方法加载 PDF 文件。 - 创建
PdfImageHelper
对象。 - 遍历文档中的每一个页面。
- 通过
PdfDocument
类的Pages[index]
属性获取指定页面。 - 使用
PdfImageHelper.GetImagesInfo()
方法获取页面中图像信息集合。 - 遍历图像信息集合,并使用 **
PdfImageInfo.Image.Save()
**方法将每一张图片以PNG格式储存到指定文件路径。
C# 代码:
using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;namespace ExtractAllImages{class Program{static void Main(string[] args){// 加载PDF文档PdfDocument pdf = new PdfDocument();pdf.LoadFromFile("E:\\PythonPDF\\AI.pdf");// 创建PdfImageHelper对象PdfImageHelper imageHelper = new PdfImageHelper();int m = 0;// 遍历PDF页面for (int i = 0; i < pdf.Pages.Count; i++){// 获取指定页面PdfPageBase page = pdf.Pages[i];// 获取页面上的图片信息 PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(page);// 遍历图片信息for (int j = 0; j < imageInfos.Length; j++){// 获取某个指定图片信息PdfImageInfo imageInfo = imageInfos[j];// 获取指定图片Image image = imageInfo.Image;// 将图片保存为png格式image.Save("PDF图片\\图-" + m + ".png");m++;}}pdf.Dispose();}}}
-
通过C# 操作PDF中图片以及其他元素的更多教程可参考:
https://www.e-iceblue.cn/spirepdfnet/spire-pdf-for-net-program-guide-content.html -
移除水印可以点击申请试用授权:
https://www.e-iceblue.cn/misc/temporary-license.html