图像可用于显示从产品照片到工作流程和流程图的各种事物。 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::SharedPtr) 将图像添加到页面Aspose::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::SharedPtr) 保存图像System::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::SharedPtr 替换旧图像System::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 文件的附加功能,您可以通过访问 官方文档 详细了解这些功能。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。