C#實(shí)現(xiàn)PDF文件添加圖片背景
本文實(shí)例講述了C#使用iTextSharp設(shè)置PDF所有頁面背景圖功能的方法。分享給大家供大家參考。具體如下:
在生成PDF 的時(shí)候,雖然可以在頁面中設(shè)置背景圖。
但有些內(nèi)容過長夸頁面的時(shí)候,就很難設(shè)置背景圖,變成了空白背景的頁面!
以下是重新生成每一頁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是近年來最流行的文件之一,無論是辦公還是日常生活中都經(jīng)常會用到,很多時(shí)候,PDF文件的背景色都是白色,看多了難免覺得累,更換PDF的背景不僅可以讓眼睛看起來更舒服,還可以讓PDF文件看上去更美觀。如何實(shí)現(xiàn)?
作為一名程序猿,當(dāng)然要親自“操刀上陣”,主要寫的是如何使用C# 給PDF文件添加圖片背景。
首先準(zhǔn)備的PDF文件,下面講一下具體代碼:
代碼使用:
第一步:創(chuàng)建一個(gè)Visual C#控制臺項(xiàng)目,添加引用并使用命名空間。
using System.Drawing; using Spire.Pdf;
第二步:創(chuàng)建一個(gè)PDF文檔對象,并加載源PDF文件。
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("sample.pdf");
第三步:獲取該P(yáng)DF文件的第一頁。
PdfPageBase page = doc.Pages[0];
第四步:加載圖片并把它設(shè)置為頁面背景。
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組件,就目前來看我想要的功能基本上都能滿足,也比較方便。
相關(guān)文章
基于WPF實(shí)現(xiàn)帶明細(xì)的環(huán)形圖表
這篇文章主要介紹了如何利用WPF繪制帶明細(xì)的環(huán)形圖表?,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-08-08
C#實(shí)現(xiàn)提取Word中插入的多媒體文件(視頻,音頻)
在Word中可將文件通過OLE對象嵌入的方式插入到文檔,包括Word、excel、PDF、PPT、圖片、宏文件、文件包等在內(nèi)的多種文件類型。本文將利用C#實(shí)現(xiàn)提取插入在Word文件中的這些多媒體文件,感興趣的可以了解一下2022-02-02
C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法
這篇文章主要介紹了C#使用SendMessage實(shí)現(xiàn)進(jìn)程間通信的方法,涉及C#中SendMessage方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C# BackgroundWorker組件學(xué)習(xí)入門介紹
一個(gè)程序中需要進(jìn)行大量的運(yùn)算,并且需要在運(yùn)算過程中支持用戶一定的交互,為了獲得更好的用戶體驗(yàn),使用BackgroundWorker來完成這一功能2013-10-10

