Aggiungi immagini al documento PDF tramite C++

Inserisci immagini nel documento PDF in modo programmatico utilizzando Aspose.PDF per la libreria C++

Aggiungi immagine al documento PDF utilizzando la libreria C++

Per aggiungere un’immagine in PDF, useremo l’API Aspose.PDF for C++ che è un’API di manipolazione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma cpp. Apri il gestore pacchetti NuGet, cerca Aspose.pdf e installa. È inoltre possibile utilizzare il seguente comando dalla console di Gestione pacchetti.

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

Aggiungi immagine al PDF usando C++


È necessario Aspose.PDF for C++ per provare il codice nel proprio ambiente.

  1. Creare un oggetto Document e aprire il documento PDF di input.
  2. Ottieni la pagina a cui desideri aggiungere un’immagine.
  3. Aggiungi l’immagine alla raccolta Risorse della pagina.
  4. Utilizzare l’operatore GSave per salvare lo stato grafico corrente.
  5. Utilizzare l’operatore ConcatenateMatrix per specificare dove posizionare l’immagine.
  6. Utilizzare l’operatore Do per disegnare l’immagine sulla pagina.
  7. Utilizzare l’operatore GRestore per salvare lo stato grafico aggiornato.
  8. Salva il file PDF.

Aggiungi immagine al documento PDF - C++

Questo codice di esempio mostra come aggiungere immagini nella pagina 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();