Dodaj obrazy do dokumentu PDF za pośrednictwem C++

Wstawianie obrazów do dokumentu PDF programowo przy użyciu biblioteki Aspose.PDF dla C++

Dodaj obraz do dokumentu PDF za pomocą biblioteki C++

Aby dodać obraz w formacie PDF, użyjemy interfejsu API Aspose.PDF for C++, który jest bogatym w funkcje, wydajnym i łatwym w użyciu interfejsem API do manipulacji dokumentami dla platformy cpp. Otwórz menedżera pakietów NuGet, wyszukaj Aspose.pdf i zainstaluj. Można również użyć następującego polecenia z konsoli Menedżera pakietów.

Package Manager Console

PM > Install-Package Aspose.PDF.Cpp

Dodaj obraz do pliku PDF za pomocą C++


Potrzebujesz Aspose.PDF for C++, aby wypróbować kod w swoim środowisku.

  1. Utwórz obiekt Document i otwórz wejściowy dokument PDF.
  2. Pobierz stronę, do której chcesz dodać obraz.
  3. Dodaj obraz do kolekcji Zasoby strony.
  4. Użyj operatora GSave, aby zapisać bieżący stan graficzny.
  5. Użyj operatora ConcateNateMatrix, aby określić, gdzie obraz ma być umieszczony.
  6. Użyj operatora Do, aby narysować obraz na stronie.
  7. Użyj operatora GreStore, aby zapisać zaktualizowany stan graficzny.
  8. Zapisz plik PDF.

Dodaj obraz do dokumentu PDF - C++

Ten przykładowy kod pokazuje, jak dodać obrazy do strony 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();