Arbeta med bilder i PDF C#

När du skapar PDF-filer programmatiskt kan du behöva arbeta med bilderna. Detta kan vara att lägga till en bild, ta bort/ersätta en bild eller extrahera bilder från PDF:en i C#. Den här artikeln täcker alla dessa funktioner och låter dig implementera dem i lätta att följa steg och några rader kod. Så låt oss se hur man arbetar med bilder i PDF-filer i C#.

C# Library för att lägga till och manipulera bilder i PDF

För att lägga till, ta bort och ersätta bilder i PDF kommer vi att använda Aspose.PDF för .NET. Det är ett C#-klassbibliotek som låter dig skapa och manipulera PDF-dokument från .NET-applikationerna. Med hjälp av biblioteket kan du utföra grundläggande såväl som avancerade PDF-automatiseringsfunktioner ganska enkelt.

Biblioteket kan laddas ner som DLL eller installeras via NuGet.

PM> Install-Package Aspose.PDF

Lägg till bild i en PDF med C#

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

  • Använd klassen Dokument för att skapa en ny eller ladda en befintlig PDF-fil.
  • Hämta referensen till den önskade sidan i objektet Page.
  • Lägg till bilden i samlingen Resurser på sidan.
  • Använd följande operatorer för att placera bilden på sidan:
    • GSave operator to save the current graphical state.
    • Sammanfoga matris operator to specify where the image is to be placed.
    • Do operator to draw the image on the page.
    • GRestore operator to save the updated graphical state.
  • Spara den uppdaterade PDF-filen med metoden Document.Save(String).

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

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Öppna dokumentet
Document pdfDocument = new Document("AddImage.pdf");

// Ställ in koordinater
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Skaffa sidan där bilden behöver läggas till
Page page = pdfDocument.Pages[1];

// Ladda bilden i stream
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Lägg till bild i bildsamlingen av sidresurser
page.Resources.Images.Add(imageStream);

// Använda GSave-operatorn: denna operatör sparar aktuell grafikstatus
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Skapa rektangel- och matrisobjekt
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 });

// Använda operatorn ConcatenateMatrix (sammanfoga matris): definierar hur bilden ska placeras
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Använda Gör-operatorn: denna operator ritar en bild
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Använda GRestore-operatorn: denna operator återställer grafiktillstånd
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Spara uppdaterat dokument
pdfDocument.Save("AddImage_out.pdf");

Extrahera bilder från PDF i C#

Om du vill extrahera alla bilder från en PDF-fil kan du göra det genom att följa stegen nedan.

Följande kodexempel visar hur man extraherar bilder från PDF i C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Öppna dokumentet
Document pdfDocument = new Document("ExtractImages.pdf");

// Extrahera en viss bild
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

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

// Spara utdatabild
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Ta bort bilder från PDF i C#

När du har fått tillgång till resurserna på en sida i PDF kan du ta bort bilderna från den. Följande är stegen för att ta bort bilder från en PDF-fil i C#.

Följande kodexempel visar hur man tar bort bilder från en PDF-fil med C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Öppna dokumentet
Document pdfDocument = new Document("DeleteImages.pdf");

// Ta bort en viss bild
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Spara uppdaterad PDF-fil
pdfDocument.Save("output.pdf");

Ersätt bild i PDF i C#

Aspose.PDF för .NET låter dig också ersätta en viss bild i PDF:en. För detta kan du byta ut bilden i sidans bildsamling. Följande är stegen för att ersätta en bild i PDF med C#.

  • Ladda PDF-filen med klassen Document.
  • Byt ut den önskade bilden med metoden [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Spara den uppdaterade PDF-filen med metoden Document.Save(String).

Följande kodexempel visar hur man ersätter en bild i PDF med C#.

// För fullständiga exempel och datafiler, gå till https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Öppna dokumentet
Document pdfDocument = new Document("input.pdf");

// Byt ut en viss bild
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Spara uppdaterad PDF-fil
pdfDocument.Save("output.pdf");

Gratis C#-bibliotek för att manipulera PDF-bilder

Du kan få en gratis tillfällig licens och arbeta med bilder i PDF-filer utan några begränsningar.

Utforska C# PDF-biblioteket

Du kan utforska mer om C# PDF-biblioteket med hjälp av dokumentationen.

Slutsats

Bilder och grafiska objekt är viktiga inslag i PDF-dokument. Därför har vi i den här artikeln täckt hur man manipulerar bilder i en PDF med C#. Steg-för-steg handledning och kodexempel har visat hur man lägger till, extraherar, tar bort och ersätter bilder i PDF-filer i C#.

Se även