PDF 是一种流行的共享和打印文档格式,因为它具有一致的布局。但是,您可能会发现自己需要生成 PDF 文件的封面图像或将其页面嵌入网页中。在这种情况下,将 PDF 文件转换为图像格式会很有帮助。为此,本文将教您如何使用 C++ 将 PDF 页面转换为 PNG 图像。
用于将 PDF 页面转换为 PNG 图像的 C++ API
Aspose.PDF for C++ 是一个 C++ 库,允许您创建、阅读和更新 PDF 文档。此外,API 支持将 PDF 页面转换为 PNG 图像。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.PDF.Cpp
使用 C++ 将 PDF 页面转换为 PNG 图像
以下是将 PDF 页面转换为 PNG 图像的步骤。
- 使用 Document 类加载 PDF 文件。
- 遍历 PDF 文件的页面。
- 在循环中,为输出图像创建一个 FileStream 类的实例。
- 创建 Resolution 类的实例。
- 创建 PngDevice 类的实例。
- 使用 进程 (System::SharedPtr页面,系统::SharedPtrSystem::IO::Stream output) 类的 PngDevice 方法,保存 PDF 页面的图像。
以下示例代码演示了如何使用 C++ 将 PDF 文件的页面保存为 PNG 图像。
// 加载 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// 遍历 PDF 页面
for (auto page : pdfDocument->get_Pages())
{
// 创建 FileStream 类的实例
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// 创建 Resolution 类的实例
auto resolution = MakeObject<Aspose::Pdf::Devices::Resolution>(300);
// 创建 PngDevice 类的实例
auto pngDevice = MakeObject<Aspose::Pdf::Devices::PngDevice>(500, 700, resolution);
// 将页面另存为图像
pngDevice->Process(page, imageStream);
// 关闭流
imageStream->Close();
}
使用 C++ 将单个 PDF 页面转换为 PNG 图像
以下是将 PDF 文件的单页转换为 PNG 图像的步骤。
- 使用 Document 类加载 PDF 文件。
- 使用 Document->getPages()->idxget(int32t index) 方法检索要转换的页面。
- 为输出图像创建一个 FileStream 类的实例。
- 实例化 Resolution 类的对象。
- 创建 PngDevice 类的实例。
- 使用 进程 (System::SharedPtr页面,系统::SharedPtrSystem::IO::Stream output) 类的 PngDevice 方法,保存 PDF 页面的图像。
以下示例代码展示了如何使用 C++ 将单个 PDF 页面转换为 PNG 图像。
// 加载 PDF 文件
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// 检索第一页
auto page = pdfDocument->get_Pages()->idx_get(1);
// 创建 FileStream 类的实例
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// 创建 Resolution 类的实例
auto resolution = MakeObject<Aspose::Pdf::Devices::Resolution>(300);
// 创建 PngDevice 类的实例
auto pngDevice = MakeObject<Aspose::Pdf::Devices::PngDevice>(500, 700, resolution);
// 将页面另存为图像
pngDevice->Process(page, imageStream);
// 关闭流
imageStream->Close();
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 将 PDF 文件的页面转换为 PNG 图像。您可以将 PDF 文件的所有页面或选定页面转换为 PNG 图像。 Aspose.PDF for C++ 是一个强大的 API,具有许多用于自动化 PDF 相关工作流程的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。