C#從PDF提取圖片的完整流程
引言
在實際開發(fā)中,PDF 文件中常包含文本、表格和圖片。圖片可能是合同中的簽名、發(fā)票上的印章,或者報告、宣傳資料中的圖表。
本文將介紹如何使用 Spire.PDF for .NET 提取 PDF 中的圖片,并保存為獨立圖像文件,重點演示 PdfImageHelper 的用法。
1. 為什么需要提取 PDF 圖片?
- 保存原始圖像:方便后續(xù)處理或歸檔;
- 數(shù)據(jù)分析:圖表或圖片信息可以進一步處理或識別;
- 文檔拆分:將 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 images)
{
// 提取圖片對象
Image img = info.Image;
// 保存為獨立文件
string fileName = $"Image_{imageIndex}.png";
img.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine($"已提取圖片: {fileName}");
imageIndex++;
}
}
Console.WriteLine("PDF 圖片提取完成!");
}
}
4. 高級用法(可選)
- 獲取圖片位置和大小:通過
PdfImageInfo.Rect可以獲取圖片在頁面中的矩形區(qū)域; - 按頁面或區(qū)域過濾:只提取指定頁或特定區(qū)域的圖片;
- 支持多種格式:可保存為 PNG、JPEG、BMP 等。
例如,只提取第一頁的所有圖片:
PdfPageBase firstPage = pdf.Pages[0]; PdfImageInfo[] firstPageImages = PdfImageHelper.GetImages(firstPage);
5. 總結(jié)
本文介紹了在 C# 中使用 Spire.PDF for .NET 提取 PDF 圖片的完整流程:
- 加載 PDF 文件;
- 使用
PdfImageHelper獲取圖片信息; - 將圖片保存為獨立文件;
- 可選:獲取位置、大小或按區(qū)域提取。
通過這種方式,開發(fā)者可以快速提取 PDF 中的所有圖片,應用于報表處理、合同歸檔或數(shù)據(jù)分析場景。
到此這篇關(guān)于C#從PDF提取圖片的操作指南的文章就介紹到這了,更多相關(guān)C#從PDF提取圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于C#實現(xiàn)12306的動態(tài)驗證碼變成靜態(tài)驗證碼的方法
這篇文章主要介紹了基于C#實現(xiàn)12306的動態(tài)驗證碼變成靜態(tài)驗證碼的方法的相關(guān)資料,需要的朋友可以參考下2015-12-12
WinForm實現(xiàn)同時讓兩個窗體有激活效果的特效實例
這篇文章主要介紹了WinForm實現(xiàn)同時讓兩個窗體有激活效果的特效實例,基于windows api實現(xiàn)一個窗體激活的時候給另外一個發(fā)消息的特效,在進行C#項目開發(fā)時有一定的實用價值,需要的朋友可以參考下2014-09-09
DataTables List互相轉(zhuǎn)換的實現(xiàn)類示例
這篇文章主要介紹了將DataTable轉(zhuǎn)換為List,將List轉(zhuǎn)換為DataTable的實現(xiàn)類實例方法,大家參考使用吧2013-11-11

