C#实现PDF文件添加图片背景
作者:lijiao 时间:2022-04-03 20:45:35
本文实例讲述了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#,PDF,图片背景
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
android studio2.3如何编译动态库的过程详解
2023-07-11 03:47:48
浅谈Java finally语句到底是在return之前还是之后执行(必看篇)
2022-10-20 06:58:41
Java 实现判定顺序表中是否包含某个元素(思路详解)
2023-09-11 01:03:04
![](https://img.aspxhome.com/file/2023/4/58474_0s.png)
Java如何实现简单后台访问并获取IP
2021-10-27 02:26:27
![](https://img.aspxhome.com/file/2023/8/75688_0s.png)
批处理一键安装JDK/一键安装JRE和自动配置Java环境变量
2023-11-29 05:28:30
![](https://img.aspxhome.com/file/2023/2/60312_0s.png)
Java优先队列(PriorityQueue)重写compare操作
2022-10-02 03:59:12
MyBatis-Plus实现分页的方法使用详解
2023-02-14 18:22:16
![](https://img.aspxhome.com/file/2023/6/60026_0s.png)
C#数据结构之堆栈(Stack)实例详解
2022-12-17 21:25:37
![](https://img.aspxhome.com/file/2023/4/80024_0s.png)
Spring Bean实例的创建及构造器的挑选
2021-08-02 09:35:57
Java实战之在线寄查快递系统的实现
2023-08-10 21:52:23
![](https://img.aspxhome.com/file/2023/2/58182_0s.png)
spring-boot-maven-plugin 配置有啥用
2022-08-27 19:09:25
![](https://img.aspxhome.com/file/2023/9/71839_0s.jpg)
springboot2.0如何通过fastdfs实现文件分布式上传
2022-03-20 16:49:24
![](https://img.aspxhome.com/file/2023/7/71917_0s.png)
springboot多模块化整合mybatis,mapper自动注入失败问题及解决
2022-02-20 08:06:29
![](https://img.aspxhome.com/file/2023/8/60778_0s.jpg)
java反射技术与类使用示例
2021-09-14 06:34:34
DecimalFormat多种用法详解
2022-11-13 15:06:52
Java实现发送手机短信语音验证功能代码实例
2023-04-04 19:03:31
C#设计模式之策略模式
2023-08-08 21:00:11
![](https://img.aspxhome.com/file/2023/3/83223_0s.jpg)
SpringMVC之@requestBody的作用及说明
2022-06-08 12:35:04
Unity UGUI实现卡片椭圆方向滚动
2022-06-03 06:02:53
![](https://img.aspxhome.com/file/2023/2/77292_0s.jpg)
SpringMVC中的几个模型对象
2021-09-01 19:25:44