C++ 経由で PDF ドキュメントに画像を追加する

Aspose.PDF for C++ ライブラリを使用して、プログラムで PDF ドキュメントに画像を挿入します

C++ ライブラリを使用して PDF ドキュメントに画像を追加する

PDFで画像を追加するために、Aspose.PDF for C++ APIを使用します。これは、cpp プラットフォーム用の機能豊富で強力で使いやすいドキュメント操作APIです。NuGet パッケージマネージャーを開き、Aspose.pdf を検索してインストールします。Package Manager コンソールから次のコマンドを使用することもできます。

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

C++ を使って画像を PDF に追加する


ご使用の環境でコードを試すには Aspose.PDF for C++ が必要です。

1。Document オブジェクトを作成し、入力 PDF ドキュメントを開きます。 1。画像を追加するページを取得します。 1。画像をページの Resources コレクションに追加します。 1。現在のグラフィカルステートを保存するには、GSave 演算子を使用します。 1。ConcatenateMatrix 演算子を使用して、イメージを配置する場所を指定します。 1。実行 演算子を使用して、ページにイメージを描画します。 1。GREStore 演算子を使用して、更新されたグラフィカルステートを保存します。 1。PDF ファイルを保存します。

PDF ドキュメントに画像を追加-C++

このサンプルコードは、PDF ページに画像を追加する方法を示しています-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();