最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET 開發(fā)中如何通過 C# 提取 PDF 中的圖片

 更新時(shí)間:2026年02月03日 08:44:33   作者:LAYONTHEGROUND  
本文介紹了如何使用FreeSpire.PDFfor.NET免費(fèi)庫從PDF文檔中提取圖片,提供了兩種典型場(chǎng)景的代碼示例,并強(qiáng)調(diào)了該方案的優(yōu)勢(shì),包括靈活可控、高效批量處理和輕量無依賴,感興趣的朋友跟隨小編一起看看吧

在.NET 開發(fā)中,從 PDF 里提取圖片是個(gè)高頻需求 —— 不管是數(shù)據(jù)遷移時(shí)需要?jiǎng)冸x文檔中的圖表,還是內(nèi)容分析時(shí)要提取關(guān)鍵插圖,都繞不開這個(gè)場(chǎng)景。但傳統(tǒng)方案總有些麻煩:付費(fèi) PDF 庫成本高,還可能依賴 Adobe Acrobat 這類重型工具,對(duì)中小型項(xiàng)目不夠友好。
本文將介紹如何使用免費(fèi)庫 Free Spire.PDF for .NET 精準(zhǔn)實(shí)現(xiàn)“整文檔批量提取”或“指定頁面精準(zhǔn)提取”,代碼簡單、操作高效。

一、前期準(zhǔn)備:快速引入工具庫

使用 Free Spire.PDF 前,需先完成庫引用,推薦通過 NuGet 安裝(步驟極簡,3步即可完成):

  • 打開Visual Studio,右鍵項(xiàng)目選擇“管理NuGet程序包”;
  • 在“瀏覽”欄搜索“Free Spire.PDF”,找到官方包后點(diǎn)擊“安裝”;
  • 等待安裝完成,項(xiàng)目會(huì)自動(dòng)添加引用,無需手動(dòng)配置路徑。

?? 注意:免費(fèi)版對(duì)單文檔頁數(shù)有一定限制。

二、核心邏輯與場(chǎng)景實(shí)現(xiàn)

Free Spire.PDF 提取圖片的核心邏輯很清晰:通過 PdfImageHelper 類的 GetImagesInfo() 方法獲取頁面圖片信息,再調(diào)用 PdfImageInfo.Image.Save() 保存圖片。以下針對(duì)兩種典型場(chǎng)景,提供可直接復(fù)用的代碼。

場(chǎng)景1:提取 PDF 文檔中所有圖片

適用于需要批量獲取文檔中所有圖片的場(chǎng)景(例如歸檔文檔內(nèi)所有插圖等)。實(shí)現(xiàn)邏輯為“加載文檔→遍歷所有頁面→提取并按序保存圖片”。

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;
namespace ExtractAllImages
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加載目標(biāo)PDF文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("Input.pdf"); // 替換為你的PDF路徑
            // 2. 初始化圖片處理工具
            PdfImageHelper imageHelper = new PdfImageHelper();
            // 3. 遍歷所有頁面,提取圖片
            int imageCount = 0; // 用于給圖片命名,避免重復(fù)
            for (int pageIndex = 0; pageIndex < pdf.Pages.Count; pageIndex++)
            {
                // 獲取當(dāng)前頁對(duì)象
                PdfPageBase currentPage = pdf.Pages[pageIndex];
                // 獲取當(dāng)前頁所有圖片信息
                PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(currentPage);
                // 保存當(dāng)前頁的圖片
                foreach (var imageInfo in imageInfos)
                {
                    Image image = imageInfo.Image;
                    // 保存路徑可自定義
                    image.Save($"Output\\image_{imageCount}.png"); 
                    imageCount++;
                }
            }
            // 4. 釋放資源
            pdf.Dispose();
        }
    }
}

場(chǎng)景2:提取 PDF 指定頁面的圖片

適用于僅需某幾頁圖片的場(chǎng)景(例如從多頁報(bào)告中提取封面圖、從論文中提取某頁的圖表等)。核心是“定位目標(biāo)頁面→單獨(dú)提取該頁圖片”。

?? 關(guān)鍵提醒:Free Spire.PDF 的頁面索引從0開始(第1頁對(duì)應(yīng)索引0,第2頁對(duì)應(yīng)索引1,以此類推)。

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;
namespace ExtractImagesFromSpecificPage
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加載目標(biāo)PDF文檔
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("Input.pdf"); // 替換為你的PDF路徑
            // 2. 定位指定頁面(此處以第1頁為例,索引為0)
            int targetPageIndex = 0; // 如需提取第3頁,改為2即可
            PdfPageBase targetPage = pdf.Pages[targetPageIndex];
            // 3. 初始化圖片處理工具并獲取圖片信息
            PdfImageHelper imageHelper = new PdfImageHelper();
            PdfImageInfo[] imageInfos = imageHelper.GetImagesInfo(targetPage);
            // 4. 保存指定頁的圖片
            for (int i = 0; i < imageInfos.Length; i++)
            {
                Image image = imageInfos[i].Image;
                // 保存路徑可自定義
                image.Save($"Output\\page_{targetPageIndex + 1}_image_{i}.png"); 
            }
            // 5. 釋放資源
            pdf.Dispose();
        }
    }
}

三、方案優(yōu)勢(shì)與注意事項(xiàng)

  • 靈活可控:支持自定義圖片保存路徑(如Output\\)和格式(如 PNG、JPG 等);
  • 高效批量處理:通過循環(huán)邏輯可快速處理多頁 PDF,無需手動(dòng)逐頁操作;
  • 輕量無依賴:無需安裝 Adobe Acrobat 等第三方軟件,僅需引用一個(gè)類庫即可運(yùn)行。

總結(jié)

用 Free Spire.PDF for .NET 提取PDF圖片,無需編寫復(fù)雜解析算法,也不用依賴重型工具,幾行代碼即可實(shí)現(xiàn)精準(zhǔn)提取。無論是整文檔批量處理,還是指定頁面定向提取,都能輕松應(yīng)對(duì)。

到此這篇關(guān)于 .NET 開發(fā)中如何通過 C# 提取 PDF 中的圖片的文章就介紹到這了,更多相關(guān)C# 提取 PDF圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#基于TCP/IP實(shí)現(xiàn)接收并推送數(shù)據(jù)的小工具

    C#基于TCP/IP實(shí)現(xiàn)接收并推送數(shù)據(jù)的小工具

    這篇文章主要為大家詳細(xì)介紹了C#如何基于TCP/IP實(shí)現(xiàn)接收并推送數(shù)據(jù)的小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-11-11
  • C#實(shí)現(xiàn)字符串模糊匹配的方法小結(jié)

    C#實(shí)現(xiàn)字符串模糊匹配的方法小結(jié)

    在C#中實(shí)現(xiàn)字符串的模糊匹配可以借助正則表達(dá)式或者一些模糊匹配算法來實(shí)現(xiàn),文章通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • C# 運(yùn)算符 ?、??、?: 各種問號(hào)的用法和說明

    C# 運(yùn)算符 ?、??、?: 各種問號(hào)的用法和說明

    本文介紹C#中三種常見的問號(hào)運(yùn)算符的使用方法,簡單講解給大家,希望對(duì)大家有所幫助。
    2016-04-04
  • C#中sizeof的用法實(shí)例分析

    C#中sizeof的用法實(shí)例分析

    這篇文章主要介紹了C#中sizeof的用法,包括了常見的用法及注釋事項(xiàng),需要的朋友可以參考下
    2014-09-09
  • C# Socket編程實(shí)現(xiàn)簡單的局域網(wǎng)聊天器的示例代碼

    C# Socket編程實(shí)現(xiàn)簡單的局域網(wǎng)聊天器的示例代碼

    這篇文章主要介紹了C# Socket編程實(shí)現(xiàn)簡單的局域網(wǎng)聊天器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C#用RabbitMQ實(shí)現(xiàn)消息訂閱與發(fā)布

    C#用RabbitMQ實(shí)現(xiàn)消息訂閱與發(fā)布

    在消息隊(duì)列模型中,如何將消息廣播到所有的消費(fèi)者,這種模式成為“發(fā)布/訂閱”。本文主要以一個(gè)簡單的小例子,簡述通過fanout交換機(jī),實(shí)現(xiàn)消息的發(fā)布與訂閱,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正。
    2021-05-05
  • 采用C#代碼動(dòng)態(tài)設(shè)置文件權(quán)限

    采用C#代碼動(dòng)態(tài)設(shè)置文件權(quán)限

    在開發(fā)中,我們經(jīng)常會(huì)使用IO操作,例如創(chuàng)建,刪除文件等操作。在項(xiàng)目中這樣的需求也較多,我們也會(huì)經(jīng)常對(duì)這些操作進(jìn)行編碼,但是對(duì)文件的權(quán)限進(jìn)行設(shè)置,這樣的操作可能會(huì)手動(dòng)操作,本文介紹一種采用代碼動(dòng)態(tài)對(duì)文件設(shè)置權(quán)限的操作。
    2016-12-12
  • C#實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音縮寫的代碼

    C#實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音縮寫的代碼

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音縮寫的代碼,感興趣的小伙伴們可以參考一下
    2016-07-07
  • c# Newtonsoft 六個(gè)值得使用的特性(下)

    c# Newtonsoft 六個(gè)值得使用的特性(下)

    這篇文章主要介紹了c# Newtonsoft 六個(gè)值得使用的特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#使用Linq to XML處理XML詳解

    C#使用Linq to XML處理XML詳解

    LINQ to XML是.NET Framework 3.5引入的一種XML編程API,本文將深入探討LINQ to XML的核心概念、常見操作及最佳實(shí)踐,需要的小伙伴可以了解下
    2025-07-07

最新評(píng)論

资源县| 丹东市| 旬阳县| 孟州市| 精河县| 仙居县| 白山市| 尼勒克县| 同江市| 大城县| 噶尔县| 凤山市| 阿拉善右旗| 敦化市| 吐鲁番市| 东安县| 龙州县| 四川省| 桐庐县| 清苑县| 尚义县| 光山县| 霞浦县| 宁德市| 长武县| 平南县| 南乐县| 日喀则市| 金堂县| 鸡西市| 岢岚县| 道孚县| 丹东市| 龙南县| 贵州省| 长汀县| 镇雄县| 金溪县| 江永县| 鲁甸县| 武山县|