Praca z obrazami w formacie PDF za pośrednictwem C++

Manipulowanie obrazami w dokumencie PDF. Użyj pliku Aspose.PDF dla C++, aby programowo modyfikować dokumenty PDF

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 pośrednictwem 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 w istniejącym pliku PDF - 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();