欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现PDF文件添加图片背景

程序员文章站 2022-06-03 15:20:15
本文实例讲述了c#使用itextsharp设置pdf所有页面背景图功能的方法。分享给大家供大家参考。具体如下: 在生成pdf 的时候,虽然可以在页面中设置背景图。 但有...

本文实例讲述了c#使用itextsharp设置pdf所有页面背景图功能的方法。分享给大家供大家参考。具体如下:

在生成pdf 的时候,虽然可以在页面中设置背景图。

但有些内容过长夸页面的时候,就很难设置背景图,变成了空白背景的页面!

以下是重新生成每一页pdf背景图功能代码!

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();
}
 

下面还是实现的是给pdf文件添加图片背景这个功能。pdf是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,pdf文件的背景色都是白色,看多了难免觉得累,更换pdf的背景不仅可以让眼睛看起来更舒服,还可以让pdf文件看上去更美观。如何实现?

作为一名程序猿,当然要亲自“操刀上阵”,主要写的是如何使用c# 给pdf文件添加图片背景。

首先准备的pdf文件,下面讲一下具体代码:

代码使用:

第一步:创建一个visual c#控制台项目,添加引用并使用命名空间。

using system.drawing;
using spire.pdf; 

第二步:创建一个pdf文档对象,并加载源pdf文件。

pdfdocument doc = new pdfdocument();
doc.loadfromfile("sample.pdf");

第三步:获取该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");


放上全部代码:

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");
    }
  }
}

 总结:

pdf虽不是微软的办公软件,但却因为它有诸多优点,而被广泛使用。pdf本身相较于word和excel等文件更不容易被编辑,而需要借用其它的组件,在这个示例中我使用的是e-iceblue公司的免费pdf组件,就目前来看我想要的功能基本上都能满足,也比较方便。