使用C#代碼在PDF文檔中添加、刪除和替換圖片
引言
在當今數(shù)字化文檔處理場景中,動態(tài)操作PDF文檔中的圖像已成為企業(yè)級應(yīng)用開發(fā)的核心需求之一。通過C#在.NET平臺實現(xiàn)圖片的添加、替換和刪除功能,不僅能顯著提升PDF文檔的視覺表現(xiàn)力與信息承載效率,更可滿足數(shù)據(jù)動態(tài)更新、內(nèi)容精準維護等復(fù)雜業(yè)務(wù)場景,為PDF文檔的專業(yè)領(lǐng)域應(yīng)用提供強有力的支持。本文 將介紹如何在.NET平臺使用C#代碼在PDF文檔中添加、刪除和替換圖片。
本文所使用的方法需要用到Free Spire.PDF for .NET,NuGet:PM> Install-Package FreeSpire.PDF
。
用C#添加圖片到PDF文檔
庫中提供的PdfImage.FromFile()
方法可以從文件載入圖片,然后我們可以使用PdfPageBase.Canvas.DrawImage()
方法,經(jīng)圖片繪制到PDF頁面的指定位置。以下是操作步驟:
- 初始化
PdfDocument
實例以新建或載入PDF文檔。 - 使用
PdfDocument.Pages.Add()
方法在PDF文檔中新建一個頁面。 - 使用
PdfImage.FromFile()
方法載入圖片。 - 指定繪制圖片的其實位置坐標。
- 使用
PdfPageBase.Canvas.DrawImage()
方法將圖片繪制到頁面上。 - 使用
PdfDocument.SaveToFile()
方法保存PDF文檔。 - 釋放資源。
代碼示例
using Spire.Pdf; using Spire.Pdf.Graphics; namespace AddImageToPDF { class Program { static void Main(string[] args) { // 創(chuàng)建PdfDocument實例 PdfDocument pdf = new PdfDocument(); // 添加一個頁面到文檔中 PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4, new PdfMargins(20f, 50f)); // 載入圖片 PdfImage image = PdfImage.FromFile("Image.png"); // 指定圖像繪制的起始點坐標 float x = (page.Size.Width - 40f) / 2 - image.Width / 2; float y = pdf.PageSettings.Margins.Top + 50; // 將圖片繪制到PDF頁面上 page.Canvas.DrawImage(image, x, y, image.Width, image.Height); // 保存PDF文檔 pdf.SaveToFile("output/InsertImagePDF.pdf"); pdf.Dispose(); } } }
結(jié)果文檔
用C#刪除PDF文檔中的圖片
庫中的PdfImageHelper
類可以用來處理PDF頁面上圖片。先使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]
獲取PDF頁面上的指定圖片,然后使用PdfImageHelper.DeleteImage()
將其刪除。以下是操作步驟:
- 創(chuàng)建
PdfDocument
對象,使用PdfDocument.LoadFromFile()
方法載入PDF文檔。 - 使用
PdfDocument.Pages[]
屬性獲取指定頁面。 - 創(chuàng)建
PdfImageHelper
實例,使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]
獲取PDF頁面上的指定圖片。 - 使用
PdfImageHelper.DeleteImage()
將圖片刪除。 - 使用
PdfDocument.SaveToFile()
方法保存PDF文檔。 - 釋放資源。
代碼示例
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Utilities; using System.Drawing; namespace AddImageToPDF { class Program { static void Main(string[] args) { // 創(chuàng)建PdfDocument實例 PdfDocument pdf = new PdfDocument(); // 載入PDF文檔 pdf.LoadFromFile("output/InsertImagePDF.pdf"); // 獲取圖片所在頁面 PdfPageBase page = pdf.Pages[0]; // 創(chuàng)建PdfImageHelper對象 PdfImageHelper imageHelper = new PdfImageHelper(); // 獲取該頁面指定圖片的信息 PdfImageInfo imageInfo = imageHelper.GetImagesInfo(page)[0]; // 刪除指定圖片 imageHelper.DeleteImage(imageInfo); // 繪制提示文本 page.Canvas.DrawString("Image deleted.", new PdfFont(PdfFontFamily.Helvetica, 16f), PdfBrushes.Black, new PointF(imageInfo.Bounds.X, imageInfo.Bounds.Y)); // 保存PDF文檔 pdf.SaveToFile("output/DeleteImagePDF.pdf"); pdf.Dispose(); } } }
結(jié)果文檔
用C#替換PDF文檔中的圖片
PdfImageHelper
類還提供ReplaceImage(PdfImageInfo, PdfImage)
方法來將PDF頁面上的指定圖片替換為新的圖片。以下是操作步驟:
- 創(chuàng)建
PdfDocument
對象,使用PdfDocument.LoadFromFile()
方法載入PDF文檔。 - 使用
PdfDocument.Pages[]
屬性獲取指定頁面。 - 創(chuàng)建
PdfImageHelper
實例,使用PdfImageHelper.GetImagesInfo(PdfPageBase)[Index]
獲取PDF頁面上的指定圖片。 - 使用
PdfImage.FromFile()
方法載入新的圖片。 - 使用
PdfImageHelper.ReplaceImage()
方法用新圖片替換頁面上的圖片。 - 使用
PdfDocument.SaveToFile()
方法保存PDF文檔。 - 釋放資源。
代碼示例
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Utilities; using System.Drawing; namespace AddImageToPDF { class Program { static void Main(string[] args) { // 創(chuàng)建PdfDocument實例 PdfDocument pdf = new PdfDocument(); // 載入PDF文檔 pdf.LoadFromFile("output/InsertImagePDF.pdf"); // 獲取圖片所在頁面 PdfPageBase page = pdf.Pages[0]; // 創(chuàng)建PdfImageHelper對象 PdfImageHelper imageHelper = new PdfImageHelper(); // 獲取該頁面指定圖片的信息 PdfImageInfo imageInfo = imageHelper.GetImagesInfo(page)[0]; // 載入新圖片 PdfImage newImage = PdfImage.FromFile("G:/Documents/Image3.png"); // 使用新圖片替換指定圖片 imageHelper.ReplaceImage(imageInfo, newImage); // 保存PDF文檔 pdf.SaveToFile("output/ReplaceImagePDF.pdf"); pdf.Dispose(); } } }
結(jié)果文檔
本文演示如何使用C#在.NET平臺實現(xiàn)PDF文檔中添加、刪除和替換圖片,提供步驟介紹和代碼示例。
以上就是使用C#代碼在PDF文檔中添加、刪除和替換圖片的詳細內(nèi)容,更多關(guān)于C# PDF添加、刪除和替換圖片的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
.net文件上傳時實現(xiàn)通過文件頭確認文件類型的方法
這篇文章主要介紹了.net文件上傳時實現(xiàn)通過文件頭確認文件類型的方法,很實用的功能,需要的朋友可以參考下2014-07-07WPF+WriteableBitmap實現(xiàn)高性能曲線圖的繪制
這篇文章主要為大家詳細介紹了如何利用WPF+WriteableBitmap實現(xiàn)高性能曲線圖的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-08-08C#實現(xiàn)按照指定長度在數(shù)字前補0方法小結(jié)
這篇文章主要介紹了C#實現(xiàn)按照指定長度在數(shù)字前補0方法,實例總結(jié)了兩個常用的數(shù)字補0的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04C#基礎(chǔ)知識之GetType與typeof的區(qū)別小結(jié)
在比較對象時,需要了解他們的類型,才能決定他們的值是否能比較。所有的類都從System.Object中繼承了GetType()方法,常常與typeo()運算符一起使用。這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)知識之GetType與typeof區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-06-06WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享
最近在網(wǎng)上看到了新版的360安全衛(wèi)士,感覺界面還不錯,于是用WPF制作了一個,時間有限,一些具體的控件沒有制作,用圖片代替了。感興趣的朋友一起跟著小編學(xué)習(xí)WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享2015-09-09