圖像可用於顯示各種內容,從產品照片到工作流程和流程圖。 PDF 文件可以包含基於其信息類型的圖像。例如,椅子安裝指南將包含椅子圖片,演示如何組裝。在某些情況下,您可能需要以編程方式操作 PDF 文件中的圖像。對於此類情況,本文將教您如何使用 C++ 處理 PDF 文件中的圖像。特別是,我們將介紹如何使用 C++ 在 PDF 中添加、替換、提取和刪除圖像。
- 用於添加、更新、刪除和替換 PDF 圖像的 C++ API
- 使用 C++ 將圖像添加到 PDF 文件
- 使用 C++ 從 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 文件的步驟。
- 使用 Document 類加載 PDF 文件。
- 使用 Document->getPages()->idxget(int32t index) 方法檢索要添加圖像的頁面。
- 創建 Rectangle 類的實例。
- 使用 Page->AddImage(System::String imagePath, System::SharedPtrAspose::Pdf::Rectangle矩形) 方法。
- 使用 Document->Save(System::String outputFileName) 方法保存 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 文件中提取圖像,請按照以下步驟操作。
- 使用 Document 類加載 PDF 文件。
- 使用 Document->getPages()->idxget(int32t index)->getResources()->getImages()->idxget(int32t index) 方法提取圖像。
- 創建 FileStream 類的實例以保存輸出圖像。
- 使用 XImage->Save(System::SharedPtrSystem::IO::Stream流,系統::SharedPtrSystem::Drawing::Imaging::ImageFormat格式) 方法。
- 關閉流。
以下示例代碼演示瞭如何使用 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 文件中刪除圖像的步驟。
- 使用 Document 類加載 PDF 文件。
- 使用 Document->getPages()->idxget(int32t index)->getResources()->getImages()->Delete(int32t index) 方法刪除特定圖像。
- 使用 Document->Save(System::String outputFileName) 方法保存 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 中的圖像,請按照以下步驟操作。
- 使用 Document 類加載 PDF 文件。
- 使用 FileStream 類打開新圖像。
- 使用 Document->getPages()->idxget(int32t index)->getResources()->getImages()->Replace(int32t index, System::SharedPtrSystem::IO::Stream流) 方法。
- 關閉流。
- 使用 Document->Save(System::String outputFileName) 方法保存 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 文件的附加功能,您可以通過訪問 官方文檔 來詳細了解這些功能。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。