在 PDF C# 中處理圖像

一張圖片勝過千言萬語。因此,圖像和圖形在 PDF 以及其他文檔中起著重要作用。由於 PDF 已成為最流行和使用最廣泛的文件格式之一,本文的目標是如何以編程方式操作 PDF 文件中的圖像。更準確地說,您將學習如何在 C# .NET 中添加、提取、刪除和替換 PDF 文件中的圖像。

用於在 PDF 中添加、刪除和替換圖像的 C# API - 免費下載

Aspose.PDF for .NET 是一個 C# 類庫,可讓您在 .NET 應用程序中創建和操作 PDF 文檔。使用 API,您可以非常輕鬆地執行基本和高級 PDF 自動化功能。此外,您還可以處理現有 PDF 文件中的圖像。 API 可以下載為 DLL 或通過 NuGet 安裝。

PM> Install-Package Aspose.Pdf

在 C# .NET 中的 PDF 文件中添加圖像

以下是使用 Aspose.PDF for .NET 將圖像添加到 PDF 文件的步驟。

  • 使用 Document 類創建新的或加載現有的 PDF 文件。
  • Page 對像中獲取所需頁面的引用。
  • 將圖像添加到頁面的 Resources 集合。
  • 使用以下運算符將圖像放置在頁面上:
    • G保存 operator to save the current graphical state.
    • 連接矩陣 operator to specify where the image is to be placed.
    • operator to draw the image on the page.
    • G恢復 operator to save the updated graphical state.
  • 使用 Document.Save(String) 方法保存更新後的 PDF 文件。

以下代碼示例顯示瞭如何使用 C# 將圖像添加到 PDF 文件。

// 如需完整示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 打開文檔
Document pdfDocument = new Document("AddImage.pdf");

// 設定坐標
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// 獲取需要添加圖片的頁面
Page page = pdfDocument.Pages[1];

// 將圖像加載到流中
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// 將圖像添加到頁面資源的圖像集合
page.Resources.Images.Add(imageStream);

// 使用 GSave 運算符:此運算符保存當前圖形狀態
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// 創建矩形和矩陣對象
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// 使用 ConcatenateMatrix(連接矩陣)運算符:定義必須如何放置圖像
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// 使用 Do 運算符:此運算符繪製圖像
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// 使用 GRestore 運算符:此運算符恢復圖形狀態
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// 保存更新的文檔
pdfDocument.Save("AddImage_out.pdf");

在 C# 中從 PDF 中提取圖像

如果您想從 PDF 文件中提取所有圖像,可以按照以下步驟操作。

以下代碼示例展示瞭如何使用 C# 從 PDF 中提取圖像。

// 如需完整示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 打開文檔
Document pdfDocument = new Document("ExtractImages.pdf");

// 提取特定圖像
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// 保存輸出圖像
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

在 C# 中從 PDF 中刪除圖像

一旦您訪問了 PDF 頁面的資源,您就可以從中刪除圖像。以下是使用 C# 從 PDF 文件中刪除圖像的步驟。

以下代碼示例顯示瞭如何使用 C# 從 PDF 中刪除圖像。

// 如需完整示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 打開文檔
Document pdfDocument = new Document("DeleteImages.pdf");

// 刪除特定圖像
pdfDocument.Pages[1].Resources.Images.Delete(1);

// 保存更新的 PDF 文件
pdfDocument.Save("output.pdf");

在 C# 中替換 PDF 中的圖像

Aspose.PDF for .NET 還允許您替換 PDF 中的特定圖像。為此,您可以替換頁面圖片集中的圖片。以下是使用 C# 替換 PDF 中的圖像的步驟。

  • 使用 Document 類加載 PDF 文件。
  • 使用 [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24 方法替換所需的圖像。
  • 使用 Document.Save(String) 方法保存更新後的 PDF 文件。

以下代碼示例顯示如何使用 C# 替換 PDF 中的圖像。

// 如需完整示例和數據文件,請訪問 https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// 打開文檔
Document pdfDocument = new Document("input.pdf");

// 替換特定圖像
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// 保存更新的 PDF 文件
pdfDocument.Save("output.pdf");

C# .NET PDF API - 獲得免費許可證

您可以獲得免費的臨時許可證,以便在不受評估限制的情況下試用 API。

結論

圖像和圖形對像是 PDF 文檔的重要元素。因此,在本文中,我們介紹瞭如何使用 C# .NET API 操作 PDF 中的圖像。分步教程和代碼示例展示瞭如何在 C# 中添加、提取、刪除和替換 PDF 文件中的圖像。您可以使用 文檔 探索有關 C# PDF API 的更多信息。

也可以看看