Lavorare con le immagini nel documento PDF tramite C++

Moderna libreria C++ per manipolare le immagini in PDF utilizzando le nostre API.

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 tramite 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 in un file PDF esistente - 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();