使用C++从PDF文档中搜索和获取图像
Contents
[
Hide
]
ImagePlacementAbsorber允许您在PDF文档的所有页面中搜索图像。
要在整个文档中搜索图像:
- 调用Pages集合的Accept方法。Accept方法将ImagePlacementAbsorber对象作为参数。这将返回一个ImagePlacement对象的集合。
- 循环遍历ImagePlacements对象并获取其属性(图像、尺寸、分辨率等)。
以下代码片段展示了如何搜索文档中的所有图像。
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;
void SearchAndGetImagesFromPDFDocument() {
String _dataDir("C:\\Samples\\");
// 打开文档
auto document = MakeObject<Document>(_dataDir + u"SearchAndGetImages.pdf");
// 创建 ImagePlacementAbsorber 对象来执行图像放置搜索
auto abs = MakeObject<ImagePlacementAbsorber>();
// 接受所有页面的吸收器
document->get_Pages()->Accept(abs);
// 遍历所有 ImagePlacements,获取图像和 ImagePlacement 属性
for(auto imagePlacement : abs->get_ImagePlacements())
{
// 使用 ImagePlacement 对象获取图像
auto image = imagePlacement->get_Image();
// 显示所有放置的图像放置属性
Console::WriteLine(u"图像宽度: {0}", imagePlacement->get_Rectangle()->get_Width());
Console::WriteLine(u"图像高度:{0}", imagePlacement->get_Rectangle()->get_Height());
Console::WriteLine(u"图像 LLX:{0}", imagePlacement->get_Rectangle()->get_LLX());
Console::WriteLine(u"图像 LLY:{0}", imagePlacement->get_Rectangle()->get_LLY());
Console::WriteLine(u"图像水平分辨率:{0}", imagePlacement->get_Resolution()->get_X());
Console::WriteLine(u"图像垂直分辨率:{0}", imagePlacement->get_Resolution()->get_Y());
}
}