通过 C++ 处理 PDF 文档中的图像

现代 C++ 库,用于使用我们的 API 处理 PDF 格式的图像。

使用 C++ 库将图像添加到 PDF 文档

为了在 PDF 中添加 Image,我们将使用 Aspose.PDF for C++ API,这是一款适用于 cpp 平台的功能丰富、功能强大且易于使用的文档处理 API。打开 NuGet 软件包管理器,搜索 aspose.pdf 然后安装。您也可以在软件包管理器控制台中使用以下命令。

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

通过 C++ 将图像添加到 PDF


你需要 Aspose.PDF for C++ 才能在你的环境中试用代码。

1.创建文档对象并打开输入 PDF 文档。 1.获取要添加图像的页面。 1.将图像添加到页面的资源集合中。 1.使用 GSave 运算符保存当前的图形状态。 1.使用 concateNateMatrix 运算符指定图像的放置位置。 1.使用 Do 运算符在页面上绘制图像。 1.使用 GreStore 运算符保存更新的图形状态。 1.保存 PDF 文件。

在现有 PDF 文件中添加图像-C++。

Example: C++


    String _dataDir("C:\\Samples\\");

    auto document = MakeObject<Document>(_dataDir + u"AddImage.pdf");

    int lowerLeftX = 50;
    int lowerLeftY = 750;
    int upperRightX = 100;
    int upperRightY = 800;

    auto page = document->get_Pages()->idx_get(1);
    auto imageStream = System::IO::File::OpenRead(_dataDir + u"logo.png");

    page->get_Resources()->get_Images()->Add(imageStream);

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GSave>());

    auto rectangle = MakeObject<Rectangle>(lowerLeftX, lowerLeftY, upperRightX, upperRightY);

    auto matrix = MakeObject<Matrix>(
        MakeArray<double>({
            rectangle->get_URX() - rectangle->get_LLX(),
            0,                  0,
            rectangle->get_URY() - rectangle->get_LLY(),
            rectangle->get_LLX(), rectangle->get_LLY() }));

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::ConcatenateMatrix>(matrix));
    auto ximage = page->get_Resources()->get_Images()->idx_get(page->get_Resources()->get_Images()->get_Count());

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::Do>(ximage->get_Name()));

    page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GRestore>());

    document->Save(_dataDir + u"updated_document.pdf");

    imageStream->Close();