Arbeta med bilder i PDF-filer med C++

Bilder kan användas för att visa en mängd olika saker, allt från produktfotografier till arbetsflöden och flödesscheman. PDF-filer kan innehålla bilder baserat på vilken typ av information den har. Till exempel kommer en installationsguide för stolen att innehålla bilder på stolen som visar hur man monterar den. Det kan finnas scenarier där du behöver manipulera bilder i PDF-filer programmatiskt. För sådana fall kommer den här artikeln att lära dig hur du arbetar med bilder i PDF-filer med C++. Speciellt kommer vi att täcka hur man lägger till, ersätter, extraherar och tar bort bilder i en PDF med C++.

C++ API för att lägga till, uppdatera, ta bort och ersätta PDF-bilder

Aspose.PDF for C++ är ett robust C++-bibliotek som låter dig skapa, läsa och ändra PDF-filer. Dessutom stöder API:et arbete med bilder i PDF-dokument. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet downloads.

PM> Install-Package Aspose.PDF.Cpp

Lägg till en bild till en PDF-fil i C++

Följande är stegen för att lägga till en bild i en PDF-fil.

Följande exempelkod visar hur man lägger till en bild i en PDF-fil med C++.

// Ladda PDF-filen
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");

// Hämta första sidan
auto page = pdfDocument->get_Pages()->idx_get(1);

// Skapa en instans av klassen Rectangle
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);

// Lägg till bild på sidan
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);

// Spara PDF-filen
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");

Extrahera bilder från en PDF i C++

För att extrahera bilder från en PDF-fil i C++, följ stegen nedan.

Följande exempelkod visar hur man extraherar en bild från en PDF-fil i C++.

// Ladda PDF-filen
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Extrahera en viss bild
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);

// Skapa ett strömobjekt för att spara utdatabilden
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");

// Spara utdatabilden
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());

// Stäng strömmen
outputImage->Close();

Ta bort en bild från en PDF-fil med C++

Följande är stegen för att ta bort en bild från en PDF-fil i C++.

Följande exempelkod visar hur man tar bort en bild från en PDF-fil i C++.

// Ladda PDF-filen
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Ta bort en viss bild
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);

// Spara PDF-filen
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");

Ersätt en bild i en PDF i C++

För att ersätta en bild i en PDF i C++, följ stegen nedan.

Följande kodexempel visar hur man ersätter en bild i en PDF-fil i C++.

// Ladda PDF-filen
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Öppna den nya bilden med FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");

// Byt ut den gamla bilden
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);

// Stäng strömmen
newImage->Close();

// Spara PDF-filen
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");

C++ API för att arbeta med PDF-bilder - Skaffa en gratis licens

Du kan prova API:et utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du arbetar med bilder i PDF-filer med C++. Specifikt har du lärt dig hur du lägger till, extraherar, ersätter och tar bort bilder från PDF-filer med Aspose.PDF för C++ API. API:et tillhandahåller ett gäng ytterligare funktioner för att arbeta med PDF-filer som du kan utforska i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även