Aspose.PDF功能演示:使用C#添加,刪除,提取和替換PDF中的圖像
一張圖片勝過(guò)千言萬(wàn)語(yǔ)。因此,圖像和圖形在PDF和其他文檔中起著重要的作用。由于PDF已成為最流行和廣泛使用的文件格式之一,因此本文著眼于如何以編程方式處理PDF文件中的圖像。更精確地講,本文將學(xué)習(xí)如何使用C#從PDF文件中添加,提取,刪除和替換圖像。
- 使用C#在PDF中添加圖像
- 使用C#從PDF提取圖像
- 使用C#從PDF刪除圖像
- 使用C#替換PDF中的圖像
.NET API的Aspose.PDF可從.NET應(yīng)用程序中創(chuàng)建和處理PDF文檔。使用API,可以輕松執(zhí)行基本以及高級(jí)的PDF自動(dòng)化功能。此外,可以處理現(xiàn)有PDF文件中的圖像。 您可以從“新發(fā)行版”部分下載最新的DLL文件,
使用C#在PDF文件中添加圖像
以下是使用Aspose.PDF for .NET將圖像添加到PDF文件的步驟。
- 使用Document類(lèi)創(chuàng)建新的或加載現(xiàn)有的PDF文件。
- 在Page對(duì)象中獲取所需頁(yè)面的引用。
- 將圖像添加到頁(yè)面的資源集合。
-
使用以下運(yùn)算符將圖像放置在頁(yè)面上:
- GSave運(yùn)算符可保存當(dāng)前的圖形狀態(tài)。
- ConcatenateMatrix運(yùn)算符,用于指定要放置圖像的位置。
- 做操作員在頁(yè)面上繪制圖像。
- GRestore操作員保存更新的圖形狀態(tài)。
- 使用Document.Save(String)方法保存更新的PDF文件。
下面的代碼示例演示如何使用C#將圖像添加到PDF文件。
// Open document Document pdfDocument = new Document("AddImage.pdf"); // Set coordinates int lowerLeftX = 100; int lowerLeftY = 100; int upperRightX = 200; int upperRightY = 200; // Get the page where image needs to be added Page page = pdfDocument.Pages[1]; // Load image into stream FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open); // Add image to Images collection of Page Resources page.Resources.Images.Add(imageStream); // Using GSave operator: this operator saves current graphics state page.Contents.Add(new Aspose.Pdf.Operators.GSave()); // Create Rectangle and Matrix objects 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 }); // Using ConcatenateMatrix (concatenate matrix) operator: defines how image must be placed page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix)); XImage ximage = page.Resources.Images[page.Resources.Images.Count]; // Using Do operator: this operator draws image page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name)); // Using GRestore operator: this operator restores graphics state page.Contents.Add(new Aspose.Pdf.Operators.GRestore()); // Save updated document pdfDocument.Save("AddImage_out.pdf");
使用C#從PDF提取圖像
如果要從PDF文件中提取所有圖像,可以按照以下步驟操作。
- 使用Document類(lèi)加載現(xiàn)有的PDF文件。
- 使用索引從特定頁(yè)面的Resources集合中獲得XImage對(duì)象中所需的圖像。
- 使用XImage.Save(FileStream,ImageFormat)方法將提取的圖像保存為所需的格式。
下面的代碼示例演示如何使用C#從PDF提取圖像。
// Open document Document pdfDocument = new Document("ExtractImages.pdf"); // Extract a particular image XImage xImage = pdfDocument.Pages[1].Resources.Images[1]; FileStream outputImage = new FileStream("output.jpg", FileMode.Create); // Save output image xImage.Save(outputImage, ImageFormat.Jpeg); outputImage.Close();
使用C#從PDF刪除圖像
一旦可以訪問(wèn)PDF頁(yè)面的資源,就可以從其中刪除圖像。以下是使用C#從PDF文件中刪除圖像的步驟。
- Delete() –刪除所有圖像。
-
Delete(Int32) –按索引刪除圖像。
- Delete(String) –按名稱(chēng)刪除圖像。
- 使用Document.Save(String)方法保存更新的PDF文件。
以下代碼示例顯示了如何使用C#從PDF中刪除圖像。
// Open document Document pdfDocument = new Document("DeleteImages.pdf"); // Delete a particular image pdfDocument.Pages[1].Resources.Images.Delete(1); // Save updated PDF file pdfDocument.Save("output.pdf");
使用C#替換PDF中的圖像
.NET的Aspose.PDF還可讓您替換PDF中的特定圖像。為此,您可以替換頁(yè)面圖像集中的圖像。以下是使用C#替換PDF中的圖像的步驟。
- 使用Document類(lèi)加載PDF文件。
- 使用Document.Pages [1] .Resources.Images.Replace(Int32,Stream,Int32,Boolean)方法替換所需的圖像。
- 使用Document.Save(String)方法保存更新的PDF文件。
下面的代碼示例演示如何使用C#替換PDF中的圖像。
// Open document Document pdfDocument = new Document("input.pdf"); // Replace a particular image pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open)); // Save updated PDF file pdfDocument.Save("output.pdf");
如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(761297826),我們很高興為您提供查詢和咨詢。