Ajouter des images au document PDF via C++

C++ Bibliothèque pour insérer des images dans un PDF à l’aide de ses propres API.

Ajouter une image au document PDF à l'aide de la bibliothèque C++

Afin d’ajouter Image au format PDF, nous utiliserons l’API Aspose.PDF pour C++ qui est une API de manipulation de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme cpp. Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.pdf et installez. Vous pouvez également utiliser la commande suivante depuis la console du gestionnaire de packages.

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

Ajouter une image au PDF en utilisant C++


Vous avez besoin de Aspose.PDF for C++ pour essayer le code dans votre environnement.

  1. Créez un objet Document et ouvrez le document PDF d’entrée.
  2. Obtenez la page à laquelle vous souhaitez ajouter une image.
  3. Ajoutez l’image dans la collection Resources de la page.
  4. Utilisez l’opérateur GSave pour enregistrer l’état graphique actuel.
  5. Utilisez l’opérateur ConcatenateMatrix pour spécifier l’emplacement de l’image.
  6. Utilisez l’opérateur Do pour dessiner l’image sur la page.
  7. Utilisez l’opérateur gRestore pour enregistrer l’état graphique mis à jour.
  8. Enregistrez le fichier PDF.

Ajoutez une image au document PDF - C++

Cet exemple de code montre comment ajouter des images dans un 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();