使用 C++ 處理 PDF 文件中的圖像

圖像可用於顯示各種內容,從產品照片到工作流程和流程圖。 PDF 文件可以包含基於其信息類型的圖像。例如,椅子安裝指南將包含椅子圖片,演示如何組裝。在某些情況下,您可能需要以編程方式操作 PDF 文件中的圖像。對於此類情況,本文將教您如何使用 C++ 處理 PDF 文件中的圖像。特別是,我們將介紹如何使用 C++ 在 PDF 中添加、替換、提取和刪除圖像。

用於添加、更新、刪除和替換 PDF 圖像的 C++ API

Aspose.PDF for C++ 是一個強大的 C++ 庫,允許您創建、閱讀和修改 PDF 文件。此外,API 支持處理 PDF 文檔中的圖像。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。

PM> Install-Package Aspose.PDF.Cpp

在 C++ 中將圖像添加到 PDF 文件

以下是將圖像添加到 PDF 文件的步驟。

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

// 加載 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");

// 檢索第一頁
auto page = pdfDocument->get_Pages()->idx_get(1);

// 創建 Rectangle 類的實例
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);

// 將圖像添加到頁面
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");

在 C++ 中從 PDF 中提取圖像

要使用 C++ 從 PDF 文件中提取圖像,請按照以下步驟操作。

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

// 加載 PDF 文件
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// 提取特定圖像
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);

// 創建一個流對象來保存輸出圖像
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");

// 保存輸出圖像
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());

// 關閉流
outputImage->Close();

使用 C++ 從 PDF 文件中刪除圖像

以下是使用 C++ 從 PDF 文件中刪除圖像的步驟。

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

// 加載 PDF 文件
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// 刪除特定圖像
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");

用 C++ 替換 PDF 中的圖像

要用 C++ 替換 PDF 中的圖像,請按照以下步驟操作。

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

// 加載 PDF 文件
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// 使用 FileStream 打開新圖像
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");

// 替換舊圖像
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);

// 關閉流
newImage->Close();

// 保存 PDF 文件
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");

用於處理 PDF 圖像的 C++ API - 獲取免費許可證

您可以通過申請 免費的臨時許可證 來試用沒有評估限制的 API。

結論

在本文中,您學習瞭如何使用 C++ 處理 PDF 文件中的圖像。具體來說,您已經學習瞭如何使用 Aspose.PDF for C++ API 從 PDF 文件中添加、提取、替換和刪除圖像。該 API 提供了一系列用於處理 PDF 文件的附加功能,您可以通過訪問 官方文檔 來詳細了解這些功能。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看