使用 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 文件的附加功能,您可以通过访问 官方文档 详细了解这些功能。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看