C#實(shí)現(xiàn)PDF文件添加圖片背景
本文實(shí)例講述了C#使用iTextSharp設(shè)置PDF所有頁(yè)面背景圖功能的方法。分享給大家供大家參考。具體如下:
在生成PDF 的時(shí)候,雖然可以在頁(yè)面中設(shè)置背景圖。
但有些內(nèi)容過(guò)長(zhǎng)夸頁(yè)面的時(shí)候,就很難設(shè)置背景圖,變成了空白背景的頁(yè)面!
以下是重新生成每一頁(yè)P(yáng)DF背景圖功能代碼!
public void SetPdfBackground(string pdfFilePath) { //重新生成的 PDF 的路徑 string destFile = HttpContext.Current.Server.MapPath("sample.pdf"); //create new pdf document FileStream stream = new FileStream(destFile, FileMode.Create, FileAccess.ReadWrite); PdfReader reader = new PdfReader(pdfFilePath); //read pdf stream PdfStamper stamper = new PdfStamper(reader, stream); string imagePage = HttpContext.Current.Server.MapPath("../images/2012/bg2.png"); System.Drawing.Image image = System.Drawing.Image.FromFile(imagePage); var img = Image.GetInstance(image, System.Drawing.Imaging.ImageFormat.Png); img.SetAbsolutePosition(0, 0); int totalPage = reader.NumberOfPages; for (int current = 1; current <= totalPage; current++) { var canvas = stamper.GetUnderContent(current); var page = stamper.GetImportedPage(reader, current); canvas.AddImage(img); } stamper.Close(); reader.Close(); }
下面還是實(shí)現(xiàn)的是給PDF文件添加圖片背景這個(gè)功能。PDF是近年來(lái)最流行的文件之一,無(wú)論是辦公還是日常生活中都經(jīng)常會(huì)用到,很多時(shí)候,PDF文件的背景色都是白色,看多了難免覺得累,更換PDF的背景不僅可以讓眼睛看起來(lái)更舒服,還可以讓PDF文件看上去更美觀。如何實(shí)現(xiàn)?
作為一名程序猿,當(dāng)然要親自“操刀上陣”,主要寫的是如何使用C# 給PDF文件添加圖片背景。
首先準(zhǔn)備的PDF文件,下面講一下具體代碼:
代碼使用:
第一步:創(chuàng)建一個(gè)Visual C#控制臺(tái)項(xiàng)目,添加引用并使用命名空間。
using System.Drawing; using Spire.Pdf;
第二步:創(chuàng)建一個(gè)PDF文檔對(duì)象,并加載源PDF文件。
PdfDocument doc = new PdfDocument(); doc.LoadFromFile("sample.pdf");
第三步:獲取該P(yáng)DF文件的第一頁(yè)。
PdfPageBase page = doc.Pages[0];
第四步:加載圖片并把它設(shè)置為頁(yè)面背景。
Image backgroundImage = Image.FromFile("background.jpg"); page.BackgroundImage = backgroundImage;
第五步:保存文件并重新打開。
doc.SaveToFile("result.pdf"); System.Diagnostics.Process.Start("result.pdf");
放上全部代碼:
using System.Drawing; using Spire.Pdf; namespace Add_image_background_to_PDF { class Program { static void Main(string[] args) { PdfDocument doc = new PdfDocument(); doc.LoadFromFile("sample.pdf"); PdfPageBase page = doc.Pages[0]; Image backgroundImage = Image.FromFile("background.jpg"); page.BackgroundImage = backgroundImage; doc.SaveToFile("result.pdf"); System.Diagnostics.Process.Start("result.pdf"); } } }
總結(jié):
PDF雖不是微軟的辦公軟件,但卻因?yàn)樗兄T多優(yōu)點(diǎn),而被廣泛使用。PDF本身相較于Word和Excel等文件更不容易被編輯,而需要借用其它的組件,在這個(gè)示例中我使用的是E-iceblue公司的免費(fèi)PDF組件,就目前來(lái)看我想要的功能基本上都能滿足,也比較方便。
相關(guān)文章
基于WPF實(shí)現(xiàn)帶明細(xì)的環(huán)形圖表
這篇文章主要介紹了如何利用WPF繪制帶明細(xì)的環(huán)形圖表?,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-08-08C#實(shí)現(xiàn)提取Word中插入的多媒體文件(視頻,音頻)
在Word中可將文件通過(guò)OLE對(duì)象嵌入的方式插入到文檔,包括Word、excel、PDF、PPT、圖片、宏文件、文件包等在內(nèi)的多種文件類型。本文將利用C#實(shí)現(xiàn)提取插入在Word文件中的這些多媒體文件,感興趣的可以了解一下2022-02-02C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法
這篇文章主要介紹了C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法,涉及C#中SendMessage方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04Unity3D動(dòng)態(tài)對(duì)象優(yōu)化代碼分享
這篇文章主要介紹了Unity3D動(dòng)態(tài)對(duì)象優(yōu)化代碼分享的相關(guān)資料,需要的朋友可以參考下2015-03-03C#動(dòng)態(tài)調(diào)整數(shù)組大小的方法
這篇文章主要介紹了C#動(dòng)態(tài)調(diào)整數(shù)組大小的方法,涉及C#中靜態(tài)方法CreateInstance的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04C# BackgroundWorker組件學(xué)習(xí)入門介紹
一個(gè)程序中需要進(jìn)行大量的運(yùn)算,并且需要在運(yùn)算過(guò)程中支持用戶一定的交互,為了獲得更好的用戶體驗(yàn),使用BackgroundWorker來(lái)完成這一功能2013-10-10