PDF 是一种在互联网上共享信息的流行格式。大多数时候,PDF 文件包含图像以及文本和其他元素。在某些情况下,您可能需要从 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() 方法获取文档的页面并对其进行迭代。
  • 使用 page->getResources()->getImages() 方法获取每个页面的图像并对其进行迭代。
  • 为每个图像创建一个 FileStream 对象,并将其保存为 JPEG、PNG 等。

以下示例代码演示了如何使用 C++ 从 PDF 文件中提取图像。

// 加载 PDF 文档
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\SampleImages2.pdf");

// 初始化图像计数器
int imageCounter = 1;

// 遍历文档的页面
for (auto page : pdfDocument->get_Pages())
{
	// 遍历页面的图像
	for (auto image : page->get_Resources()->get_Images())
	{
		// 创建 FileStream 的实例
		System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(String::Format(u"OutputDirectory\\Image{0}.jpg", imageCounter));

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

		// 关闭文件流
		outputImage->Close();

		// 增加图像计数器
		imageCounter++;
	}
}

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C++ 从 PDF 文件中提取图像。我们使用强大且易于使用的 Aspose.PDF for C++ API 来实现这一点。 API 提供了一系列用于处理 PDF 文件的附加功能,您可以通过访问 官方文档 来详细了解这些功能。如果您对 API 的任何方面有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看