当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,避免每次都要从 PDF 中查找。本文将介绍如何使用C#通过代码从PDF文档中提取图片,包含以下两个示例:

  • C# 提取指定 PDF 页面中的图片
  • C# 提取PDF 文档中所有图片

提取PDF图片需要用到 Spire.PDF for .NET 库。可以通过此链接下载产品包后手动添加引用,或者直接通过NuGet安装。

C# 提取指定 PDF 页面中的图片

PdfImageHelper 类可用于帮助用户管理 PDF 文档中的图像,要从某个指定的PDF页面中提取图片,参考以下步骤:

  1. 使用 PdfDocument 类的 LoadFromFile() 方法加载 PDF 文件。
  2. 通过 PdfDocument 类的 Pages[index] 属性获取指定页面。
  3. 创建 PdfImageHelper 对象,然后使用其 GetImagesInfo() 方法获取页面中图像信息集合。
  4. 遍历图像信息集合,并使用 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("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文档中的图片,就需要遍历每一页然后再提取,具体参考以下步骤:

  1. 使用 PdfDocument 类的 LoadFromFile() 方法加载 PDF 文件。
  2. 创建 PdfImageHelper 对象。
  3. 遍历文档中的每一个页面。
  4. 通过 PdfDocument 类的 Pages[index] 属性获取指定页面。
  5. 使用 PdfImageHelper.GetImagesInfo() 方法获取页面中图像信息集合。
  6. 遍历图像信息集合,并使用 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("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

 

C# 从PDF文档中提取图片的更多相关文章

  1. 如何使用免费PDF控件从PDF文档中提取文本和图片

             如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...

  2. 如何通过C#/VB.NET从PowerPoint文档中提取图片

    PowerPoint是用于制作幻灯片(演示文稿)的应用软件,每张幻灯片中都可以包含文字.图形.图形.表格.声音和影像等多种信息.有时候我们发现在PPT里面有一些精美的图片,或者其他原因想要把PPT里面 ...

  3. 第一节:python提取PDF文档中的图片

    由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...

  4. OrCAD Capture CIS 16.6 从PDF文档中提取引脚定义,实现快速地编辑Part的引脚名称

    操作系统:Windows 10 x64 工具1:OrCAD Capture CIS 16.6-S062 (v16-6-112FF) 工具2:Excel 工具3:Solid Converter 打开需要 ...

  5. C# 提取Word文档中的图片

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  6. 将Word,PDF文档转化为图片

    #region 将Word文档转化为图片 /// <summary> /// 将Word文档转化为图片 /// </summary> /// <param name=&q ...

  7. 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies

    一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...

  8. 如何突出显示PDF文档中的一些重要文本信息

    PDF文档中如果存在着太多的文字时,阅读者会容易遗漏很多重要的信息.但如果,文档中存在着一些特殊标记的文字时,比如标黄.标红文本时,很多人都会给予特别关注. 因此,当大家在使用pdfFactory专业 ...

  9. 在LaTeX文档中插入图片的几种常用的方法

    LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件. 在LaTeX文档中插入图片 ...

  10. Java 在PDF文档中绘制图形

    本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...

随机推荐

  1. Halcon学习教程(一) 之提取十字线中心 图像分割

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/17266405.html 废话不多说,因为毕业后工作原因比较忙,好久没更新博客了,直接上图... ...

  2. QT5笔记:36. QGraphicsView 综合示例 (完结撒花!)

    通过此示例可以比较熟悉QGraphincsView的流程以及操作 坐标关系以及获取: View坐标:左上角为原点,通过鼠标移动事件获取 Scene坐标:中心为原点,横竖为X,Y轴.通过View.map ...

  3. SpringSecurity - [01] 概述

    Spring Security 是一个灵活且强大的工具,可以帮助你构建安全可靠的Spring应用程序.它不仅简化了认证和授权的过程,而且还提供了丰富的特性和扩展点,使得开发者可以根据项目的独特需求定制 ...

  4. 宝塔导入mysql数据库后,phpmyadmin可以登录,本地Navicat无法登录

    问题描述:宝塔导入mysql数据库后,phpmyadmin可以登录,本地Navicat无法登录 问题排查:1.检查服务器3306端口是否开启,如果为云服务器,需要登录云服务器后台安全组设置开启: 2. ...

  5. 使用电阻网络实现的vga驱动电路,fpga驱动vga显示器验证,代替gm7123芯片

    之前驱动vga,要么是直接使用fpga管脚直接驱动,颜色为8原色 使用线缆 vs,hs,r,g,b一共五根线,三原色要么是0要么是1,所以色彩最多8种,rgb组合 若要实现真彩色驱动,如rgb888, ...

  6. 基于React的虚拟滚动方案

    基于React的虚拟滚动方案 在渲染列表时我们通常会一次性将所有列表项渲染到DOM中,在数据量大的时候这种操作会造成页面响应缓慢,因为浏览器需要处理大量的DOM元素.而此时我们通常就需要虚拟滚动来实现 ...

  7. python3 报错ModuleNotFoundError: No module named 'apt_pkg'

    前言 apt update无法执行,python3 报错 ModuleNotFoundError: No module named 'apt_pkg' 这是因为将 python 版本升级后的问题 正确 ...

  8. Django实战项目-学习任务系统-需求说明

    一,需求说明 在我最近的阅读中,我深深被一些关于智能或系统的小说吸引.这些小说的主角意外获得某种神秘的智能或系统,然后通过完成系统发布的各种任务,逐渐提升自己的知识和能力.即使是普通的屌丝,也能在系统 ...

  9. JOKER可视化开发工具迎来重大更新

    为紧跟行业前沿趋势,满足开发者日益增长的需求,我们于2025年3月13日对平台开展了全方位升级.此次更新聚焦前端交互的便捷性.服务端功能的强大性以及通用操作的流畅性,在多方面进行了深度优化.尤为值得一 ...

  10. Java24你发任你发,我用Java8

    大家好,我是晓凡. 各位 Java 开发者们!是不是还在为 Java 23 的新特性忙得焦头烂额? 别急,Java 24 已经悄咪咪地发布了! 这可是自 Java 21 以来的第三个非长期支持版本,而 ...