Práce s obrázky v PDF C#

Při programovém generování souborů PDF možná budete muset pracovat s obrázky. Může se jednat o přidání obrázku, odstranění/nahrazení obrázku nebo extrahování obrázků z PDF v C#. Tento článek pokrývá všechny tyto funkce a umožňuje vám je implementovat ve snadno srozumitelných krocích a několika řádcích kódu. Pojďme se tedy podívat, jak pracovat s obrázky v souborech PDF v C#.

Knihovna C# pro přidávání a manipulaci s obrázky v PDF

Pro přidání, odstranění a nahrazení obrázků v PDF použijeme Aspose.PDF for .NET. Je to knihovna tříd C#, která vám umožňuje vytvářet a manipulovat s dokumenty PDF z aplikací .NET. Pomocí knihovny můžete poměrně snadno provádět základní i pokročilé funkce automatizace PDF.

Knihovnu lze stáhnout jako DLL nebo nainstalovat pomocí NuGet.

PM> Install-Package Aspose.PDF

Přidat obrázek do PDF pomocí C#

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

  • Pomocí třídy Document vytvořte nový nebo načtěte existující soubor PDF.
  • Získejte odkaz na požadovanou stránku v objektu Page.
  • Přidejte obrázek do sbírky Zdroje stránky.
  • K umístění obrázku na stránku použijte následující operátory:
    • GUložit operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • Dělat operator to draw the image on the page.
    • Obnovit operator to save the updated graphical state.
  • Uložte aktualizovaný soubor PDF pomocí metody Document.Save(String).

Následující ukázka kódu ukazuje, jak přidat obrázek do souboru PDF pomocí C#.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Otevřete dokument
Document pdfDocument = new Document("AddImage.pdf");

// Nastavte souřadnice
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Získejte stránku, kam je třeba přidat obrázek
Page page = pdfDocument.Pages[1];

// Načíst obrázek do streamu
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Přidejte obrázek do sbírky Obrázky zdrojů stránky
page.Resources.Images.Add(imageStream);

// Použití operátoru GSave: tento operátor uloží aktuální stav grafiky
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Vytvářejte objekty obdélníku a matice
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Použití operátoru ConcatenateMatrix (matice zřetězení): definuje, jak musí být obrázek umístěn
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Použití operátoru Do: tento operátor kreslí obrázek
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Pomocí operátoru GRestore: tento operátor obnovuje stav grafiky
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Uložit aktualizovaný dokument
pdfDocument.Save("AddImage_out.pdf");

Extrahujte obrázky z PDF v C#

V případě, že chcete extrahovat všechny obrázky ze souboru PDF, můžete to udělat podle níže uvedených kroků.

Následující ukázka kódu ukazuje, jak extrahovat obrázky z PDF v C#.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Otevřete dokument
Document pdfDocument = new Document("ExtractImages.pdf");

// Extrahujte konkrétní obrázek
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Uložit výstupní obrázek
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Odebrat obrázky z PDF v C#

Jakmile získáte přístup ke zdrojům stránky v PDF, můžete z ní odstranit obrázky. Následují kroky k odstranění obrázků ze souboru PDF v C#.

Následující ukázka kódu ukazuje, jak odstranit obrázky z PDF pomocí C#.

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Otevřete dokument
Document pdfDocument = new Document("DeleteImages.pdf");

// Smazat konkrétní obrázek
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Uložte aktualizovaný soubor PDF
pdfDocument.Save("output.pdf");

Nahradit obrázek v PDF v C#

Aspose.PDF for .NET také umožňuje nahradit konkrétní obrázek v PDF. Za tímto účelem můžete nahradit obrázek v kolekci obrázků na stránce. Následují kroky k nahrazení obrázku v PDF pomocí C#.

  • Načtěte soubor PDF pomocí třídy Document.
  • Nahraďte požadovaný obrázek pomocí metody [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Uložte aktualizovaný soubor PDF pomocí metody Document.Save(String).

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

// Úplné příklady a datové soubory najdete na https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Otevřete dokument
Document pdfDocument = new Document("input.pdf");

// Nahraďte konkrétní obrázek
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Uložte aktualizovaný soubor PDF
pdfDocument.Save("output.pdf");

Bezplatná knihovna C# pro manipulaci s obrázky PDF

Můžete získat bezplatnou dočasnou licenci a pracovat s obrázky v souborech PDF bez jakýchkoli omezení.

Prozkoumejte knihovnu C# PDF

Více o knihovně C# PDF můžete prozkoumat pomocí dokumentace.

Závěr

Obrázky a grafické objekty jsou důležitými prvky dokumentů PDF. Proto jsme v tomto článku probrali, jak manipulovat s obrázky v PDF pomocí C#. Výukový program krok za krokem a ukázky kódu ukázaly, jak přidávat, extrahovat, odstraňovat a nahrazovat obrázky v souborech PDF v jazyce C#.

Viz také