使用C++从PDF文档中搜索和获取图像

Contents
[ ]

ImagePlacementAbsorber允许您在PDF文档的所有页面中搜索图像。

要在整个文档中搜索图像:

  1. 调用Pages集合的Accept方法。Accept方法将ImagePlacementAbsorber对象作为参数。这将返回一个ImagePlacement对象的集合。
  2. 循环遍历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());
    }
}