Práce s obrázky v souborech PDF pomocí C++

Obrázky lze použít k zobrazení různých věcí, od fotografií produktů po pracovní postupy a vývojové diagramy. Soubory PDF mohou obsahovat obrázky na základě typu informací, které mají. Například průvodce instalací židle bude obsahovat obrázky židle, které ukazují, jak ji sestavit. Mohou nastat situace, kdy je potřeba programově manipulovat s obrázky v souborech PDF. Pro takové případy vás tento článek naučí pracovat s obrázky v souborech PDF pomocí C++. Zejména se budeme zabývat tím, jak přidávat, nahrazovat, extrahovat a odstraňovat obrázky v PDF pomocí C++.

C++ API pro přidávání, aktualizaci, odebírání a nahrazování obrázků PDF

Aspose.PDF for C++ je robustní knihovna C++, která vám umožňuje vytvářet, číst a upravovat soubory PDF. Dále API podporuje práci s obrázky v PDF dokumentech. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce ke stažení.

PM> Install-Package Aspose.PDF.Cpp

Přidejte obrázek do souboru PDF v C++

Níže jsou uvedeny kroky pro přidání obrázku do souboru PDF.

Následující ukázkový kód ukazuje, jak přidat obrázek do souboru PDF pomocí C++.

// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");

// Načtěte první stránku
auto page = pdfDocument->get_Pages()->idx_get(1);

// Vytvořte instanci třídy 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);

// Přidejte obrázek na stránku
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);

// Uložte soubor PDF
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");

Extrahujte obrázky z PDF v C++

Chcete-li extrahovat obrázky ze souboru PDF v C++, postupujte podle níže uvedených kroků.

Následující ukázkový kód ukazuje, jak extrahovat obrázek z PDF v C++.

// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Extrahujte konkrétní obrázek
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);

// Chcete-li uložit výstupní obraz, vytvořte objekt proudu
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");

// Uložte výstupní obrázek
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());

// Zavřete stream
outputImage->Close();

Odstraňte obrázek ze souboru PDF pomocí C++

Následují kroky k odstranění obrázku ze souboru PDF v C++.

Následující ukázkový kód ukazuje, jak odebrat obrázek ze souboru PDF v C++.

// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Smazat konkrétní obrázek
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);

// Uložte soubor PDF
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");

Nahradit obrázek v PDF v C++

Chcete-li nahradit obrázek v PDF v C++, postupujte podle níže uvedených kroků.

Následující ukázka kódu ukazuje, jak nahradit obrázek v souboru PDF v C++.

// Načtěte soubor PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");

// Otevřete nový obrázek pomocí FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");

// Nahraďte starý obrázek
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);

// Zavřete stream
newImage->Close();

// Uložte soubor PDF
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");

C++ API pro práci s obrázky PDF – Získejte bezplatnou licenci

Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili pracovat s obrázky v souborech PDF pomocí C++. Konkrétně jste se naučili přidávat, extrahovat, nahrazovat a odstraňovat obrázky ze souborů PDF pomocí Aspose.PDF for C++ API. API poskytuje spoustu dalších funkcí pro práci se soubory PDF, které můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také