動態

詳情 返回 返回

.NET用C#提取PDF中的圖片 - 動態 詳情

PDF文檔因其跨平台穩定性和格式保真度成為信息交換的核心載體。然而,PDF文件作為容器格式的封閉特性,使得其內部資源的有效提取成為技術挑戰。尤其是對嵌入式圖像這類非結構化數據的獲取需求日益凸顯。通過編程手段實現自動化提取不僅能突破傳統手動截圖的效率瓶頸,更能滿足數據歸檔、多媒體資源庫構建、文檔智能解析等場景的深層需求。本文將介紹如何在.NET平台使用C#提取PDF文檔中的圖片,為PDF圖片的再利用提供便捷方案。

本文所使用的方法需要用到免費的Free Spire.PDF for .NET,NuGet:PM> Install-Package FreeSpire.PDF

用C#提取PDF文檔中的所有圖片

我們可以使用庫中的PdfImageHelper類來處理PDF文檔圖片的提取任務。首先需要使用PdfImageHelper.GetImagesInfo(PdfPageBase)方法來獲取PDF頁面的圖片信息為PdfImageInfo集合,然後使用PdfImageInfo.Image.Save()方法,將圖片保存到指定位置,從而完成圖片提取。
以下是操作步驟:

  1. 創建PdfDocument對象,使用PdfDocument.LoadFromFile()載入PDF文檔。
  2. 創建PdfImageHelper對象,用於獲取圖片信息。
  3. 遍歷文檔中的頁面,使用PdfDocument.Pages[]屬性獲取當前頁面。
  4. 使用PdfImageHelper.GetImagesInfo()方法獲取當前頁面的圖片信息為PdfImageInfo集合。
  5. 使用PdfImageInfo.Image.Save()將圖片保存到指定位置。
  6. 釋放資源。

代碼示例

using Spire.Pdf;
using Spire.Pdf.Utilities;
using System.Drawing;

namespace AddImageToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創建PdfDocument實例
            PdfDocument pdf = new PdfDocument();

            // 載入PDF文檔
            pdf.LoadFromFile("Sample.pdf");

            // 創建PdfImageHelper對象
            PdfImageHelper imageHelper = new PdfImageHelper();

            // 遍歷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++)
                {
                    // 保存當前圖片
                    imageInfos[j].Image.Save($"Images/Page{i + 1}-Image{j + 1}.png");
                }
            }

            // 釋放資源
            pdf.Dispose();
        }
    }
}

提取結果
C#提取PDF圖片

本文演示瞭如何在.NET平台使用C#提取PDF文檔中的所有圖片。

user avatar lanlan_guo 頭像
點贊 1 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.