使用C#代碼在PDF文檔中添加、刪除和替換圖片
引言
在當(dāng)今數(shù)字化文檔處理場景中,動(dòng)態(tài)操作PDF文檔中的圖像已成為企業(yè)級(jí)應(yīng)用開發(fā)的核心需求之一。通過C#在.NET平臺(tái)實(shí)現(xiàn)圖片的添加、替換和刪除功能,不僅能顯著提升PDF文檔的視覺表現(xiàn)力與信息承載效率,更可滿足數(shù)據(jù)動(dòng)態(tài)更新、內(nèi)容精準(zhǔn)維護(hù)等復(fù)雜業(yè)務(wù)場景,為PDF文檔的專業(yè)領(lǐng)域應(yīng)用提供強(qiáng)有力的支持。本文 將介紹如何在.NET平臺(tái)使用C#代碼在PDF文檔中添加、刪除和替換圖片。
本文所使用的方法需要用到Free Spire.PDF for .NET,NuGet:PM> Install-Package FreeSpire.PDF。
用C#添加圖片到PDF文檔
庫中提供的PdfImage.FromFile()方法可以從文件載入圖片,然后我們可以使用PdfPageBase.Canvas.DrawImage()方法,經(jīng)圖片繪制到PDF頁面的指定位置。以下是操作步驟:
- 初始化
PdfDocument實(shí)例以新建或載入PDF文檔。 - 使用
PdfDocument.Pages.Add()方法在PDF文檔中新建一個(gè)頁面。 - 使用
PdfImage.FromFile()方法載入圖片。 - 指定繪制圖片的其實(shí)位置坐標(biāo)。
- 使用
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實(shí)例
PdfDocument pdf = new PdfDocument();
// 添加一個(gè)頁面到文檔中
PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4, new PdfMargins(20f, 50f));
// 載入圖片
PdfImage image = PdfImage.FromFile("Image.png");
// 指定圖像繪制的起始點(diǎn)坐標(biāo)
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對(duì)象,使用PdfDocument.LoadFromFile()方法載入PDF文檔。 - 使用
PdfDocument.Pages[]屬性獲取指定頁面。 - 創(chuàng)建
PdfImageHelper實(shí)例,使用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實(shí)例
PdfDocument pdf = new PdfDocument();
// 載入PDF文檔
pdf.LoadFromFile("output/InsertImagePDF.pdf");
// 獲取圖片所在頁面
PdfPageBase page = pdf.Pages[0];
// 創(chuàng)建PdfImageHelper對(duì)象
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對(duì)象,使用PdfDocument.LoadFromFile()方法載入PDF文檔。 - 使用
PdfDocument.Pages[]屬性獲取指定頁面。 - 創(chuàng)建
PdfImageHelper實(shí)例,使用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實(shí)例
PdfDocument pdf = new PdfDocument();
// 載入PDF文檔
pdf.LoadFromFile("output/InsertImagePDF.pdf");
// 獲取圖片所在頁面
PdfPageBase page = pdf.Pages[0];
// 創(chuàng)建PdfImageHelper對(duì)象
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平臺(tái)實(shí)現(xiàn)PDF文檔中添加、刪除和替換圖片,提供步驟介紹和代碼示例。
以上就是使用C#代碼在PDF文檔中添加、刪除和替換圖片的詳細(xì)內(nèi)容,更多關(guān)于C# PDF添加、刪除和替換圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
.net文件上傳時(shí)實(shí)現(xiàn)通過文件頭確認(rèn)文件類型的方法
這篇文章主要介紹了.net文件上傳時(shí)實(shí)現(xiàn)通過文件頭確認(rèn)文件類型的方法,很實(shí)用的功能,需要的朋友可以參考下2014-07-07
WPF+WriteableBitmap實(shí)現(xiàn)高性能曲線圖的繪制
這篇文章主要為大家詳細(xì)介紹了如何利用WPF+WriteableBitmap實(shí)現(xiàn)高性能曲線圖的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下2022-08-08
C#實(shí)現(xiàn)按照指定長度在數(shù)字前補(bǔ)0方法小結(jié)
這篇文章主要介紹了C#實(shí)現(xiàn)按照指定長度在數(shù)字前補(bǔ)0方法,實(shí)例總結(jié)了兩個(gè)常用的數(shù)字補(bǔ)0的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C#基礎(chǔ)知識(shí)之GetType與typeof的區(qū)別小結(jié)
在比較對(duì)象時(shí),需要了解他們的類型,才能決定他們的值是否能比較。所有的類都從System.Object中繼承了GetType()方法,常常與typeo()運(yùn)算符一起使用。這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)知識(shí)之GetType與typeof區(qū)別的相關(guān)資料,需要的朋友可以參考下2021-06-06
C#中加鹽(salting)的實(shí)現(xiàn)示例
在密碼存儲(chǔ)和驗(yàn)證中,加鹽是一種增加密碼安全性的技術(shù),本文主要介紹了C#中加鹽(salting)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享
最近在網(wǎng)上看到了新版的360安全衛(wèi)士,感覺界面還不錯(cuò),于是用WPF制作了一個(gè),時(shí)間有限,一些具體的控件沒有制作,用圖片代替了。感興趣的朋友一起跟著小編學(xué)習(xí)WPF實(shí)現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享2015-09-09

