Lavora con le immagini in PDF tramite C++

Manipola le immagini nel documento PDF. Usa Aspose.PDF per C++ per modificare i documenti PDF a livello di codice

L'azione più popolare con immagini in 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 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();