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

 更新时间:2016年02月09日 18:34:10   投稿:lijiao  
这篇文章主要介绍了C#实现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组件,就目前来看我想要的功能基本上都能满足,也比较方便。

相关文章

  • C#与PLC通讯的实现代码

    C#与PLC通讯的实现代码

    这篇文章主要介绍了C#与PLC通讯的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 使用C#实现简单的线性回归的代码详解

    使用C#实现简单的线性回归的代码详解

    最近注意到了NumSharp,想学习一下,最好的学习方式就是去实践,因此从github上找了一个用python实现的简单线性回归代码,然后基于NumSharp用C#进行了改写,需要的朋友可以参考下
    2024-01-01
  • Unity实现跑马灯效果的示例代码

    Unity实现跑马灯效果的示例代码

    这篇文章主要为大家详细介绍了如何利用Unity实现跑马灯效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C#实现winform自动关闭MessageBox对话框的方法

    C#实现winform自动关闭MessageBox对话框的方法

    这篇文章主要介绍了C#实现winform自动关闭MessageBox对话框的方法,实例分析了C#中MessageBox对话框的相关操作技巧,需要的朋友可以参考下
    2015-04-04
  • C#圆形头像框制作并从数据库读取

    C#圆形头像框制作并从数据库读取

    本文主要介绍了C#圆形头像框制作并从数据库读取,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 在C#中使用MSMQ的方法

    在C#中使用MSMQ的方法

    这篇文章主要介绍了在C#中使用MSMQ的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • 基于C#中XmlReader读取Xml的深入分析

    基于C#中XmlReader读取Xml的深入分析

    本篇文章是对C#中XmlReader读取Xml进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c#中合并excel表格的方法示例

    c#中合并excel表格的方法示例

    本篇文章主要介绍了c#中合并excel表格的方法,就是将excel表格结构一样的合并到一起,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-10-10
  • C#难点逐个击破(6):C#数据类型与.net framework数据类型

    C#难点逐个击破(6):C#数据类型与.net framework数据类型

    最近开始看Illustrator C#2008,这真是一本好书,我读计算机书籍这么多了,能让我称为好书的没有多少。
    2010-02-02
  • C#中单例模式的三种写法示例

    C#中单例模式的三种写法示例

    这篇文章主要介绍了C#中单例模式的三种写法示例,本文分别给出代码实例,需要的朋友可以参考下
    2015-06-06

最新评论