使用免费组件给PDF文档添加文本和图片页眉
C#/.NET 使用免费组件给PDF文档添加文本和图片页眉
如今PDF文档与Office文档一样成为了一种通用文档,在日常工作中我们经常会碰到需要给PDF文件添加页眉和页脚/页码等情况,如果你正好是喜欢编程的朋友,不妨看看本篇文章。本文主要介绍如何在C#/.NET应用程序中使用免费组件Free Spire.PDF给现有的PDF文档添加文本和图片页眉,当然它除了这个功能外也支持添加页脚及其他丰富的功能,免费版可以供商业或个人免费使用,感兴趣的朋友可以从这里直接下载使用该组件(无需注册)。
以下是详细步骤。
首先在visual studio中创建一个新的C#项目,添加对Spire.Pdf.dll的引用。
接下来定义一个静态方法SetDocumentTemplate(PdfDocumentdoc, SizeF pageSize, PdfMargins margin)来创建一个PDF文档模板,在该方法内调用DrawString(strings, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format) 方法和DrawImage(PdfImageimage, float x, float y, float width, float height)方法向模板插入自定义的文本和图片页眉,具体位置及图片的大小可以自定义。
static voidSetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMarginsmargin)
{PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width,margin.Top);topSpace.Foreground= true;doc.Template.Top =topSpace;//添加文本页眉PdfTrueTypeFont font = newPdfTrueTypeFont(newFont("ArialUnicode MS", 11f), true);PdfStringFormat format = newPdfStringFormat(PdfTextAlignment.Right);String text = "PDF页眉"; float x = PdfPageSize.A4.Width;float y = 0;topSpace.Graphics.DrawString(text,font, PdfBrushes.Black, x, y, format);//添加图片页眉PdfImage headerImage = PdfImage.FromFile(@"E:\Program Files\1.png");float width = headerImage.Width;float height = headerImage.Height;topSpace.Graphics.DrawImage(headerImage,0, 0, width / 3, height / 4);
}
然后在主函数内调用该方法。
思路解析:
1.首先创建一个新的PDF文档,并把它所有的margin也就是页边距都设置为0。
PdfDocument doc = new PdfDocument();
doc.PageSettings.Margins.All = 0;
2.然后载入现有的需要添加页眉的PDF文档。
PdfDocument original = new PdfDocument();
original.LoadFromFile("示例.pdf");
3.调用以上方法,将以上模板应用到新建的PDF文档上。
SetDocumentTemplate(doc, PdfPageSize.A4,original.PageSettings.Margins);
4.遍历原始文档的每一页,向这个新文档添加与原始文档一致数量及大小的页面,然后将原始文档的每一页的内容画到新文档对应的每一页上。
PdfPageBase page = null;
foreach (PdfPageBaseorigianlPage in original.Pages)
{page = doc.Pages.Add(newSizeF(origianlPage.Size.Width,origianlPage.Size.Height));origianlPage.CreateTemplate().Draw(page, 0,-(original.PageSettings.Margins.Top));
}
5.最后保存文档。
doc.SaveToFile("页眉.pdf");
这是原始PDF文档:
运行结果:
全部代码如下:
using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;namespace 给PDF文档添加页眉
{class Program{static void Main(string[] args){PdfDocument doc = newPdfDocument();doc.PageSettings.Margins.All = 0; PdfDocument original = newPdfDocument();original.LoadFromFile("示例.pdf");SetDocumentTemplate(doc, PdfPageSize.A4,original.PageSettings.Margins);PdfPageBasepage = null;foreach (PdfPageBaseorigianlPage in original.Pages){page = doc.Pages.Add(new SizeF(origianlPage.Size.Width,origianlPage.Size.Height));origianlPage.CreateTemplate().Draw(page, 0,-(original.PageSettings.Margins.Top));}doc.SaveToFile("页眉.pdf");System.Diagnostics.Process.Start("页眉.pdf");}static voidSetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMarginsmargin){PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width,margin.Top);topSpace.Foreground = true;doc.Template.Top = topSpace;PdfTrueTypeFont font = newPdfTrueTypeFont(newFont("ArialUnicode MS", 11f), true);PdfStringFormat format = newPdfStringFormat(PdfTextAlignment.Right);String text = "PDF页眉"; float x = PdfPageSize.A4.Width;float y = 0;topSpace.Graphics.DrawString(text, font, PdfBrushes.Black,x, y, format);PdfImage headerImage = PdfImage.FromFile(@"E:\Program Files\1.png");float width = headerImage.Width;float height = headerImage.Height;topSpace.Graphics.DrawImage(headerImage, 0, 0, width / 3, height / 4);}}
}
使用免费组件给PDF文档添加文本和图片页眉相关推荐
- 利用iTextSharp组件给PDF文档添加图片水印,文字水印
最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为: usingSy ...
- 使用免费组件view pdf 文档
C#教程https://www.xin3721.com/eschool/CSharpxin3721/ "Is there any way to view PDF files in a Win ...
- Java 处理PDF文档(一):页眉页脚、水印、背景、附件
前言 本文将介绍通过Java编程来处理PDF文档的一些方法,因为一篇文档的处理可能包括很多内容,比如文档安全性设置(水印.加密/解密).文本/图片/图形操作.注释.附件.域.文档转换(其他文件格式转为 ...
- python能在pdf上加内容吗_在Python中向现有PDF文档添加文本
在四处寻找之后,我终于找到了解决办法: 结果发现this毕竟是正确的方法. 但是,我觉得这不够冗长. 这张海报似乎是从here(相同的变量名等)中摘取的. 想法:用Reportlab创建新的空白PDF ...
- 使用IText组件在PDF文档上绘制椭圆形印章的算法分析及代码分享
1. 引言 PDF是一种和操作系统及平台无关的.可移植的电子文件格式,其以PostScript语言图像模型为基础,无论在哪种打印机上,都可保证精确的颜色和准确的打印效果.PDF将真实地再现原稿的每一个 ...
- C# 如何给现有/新建PDF文档添加注释或标注
这篇文章主要介绍如何使用免费版PDF组件Free Spire.PDF及C#编程语言给现有PDF文档或新建的PDF文档中的文本添加注释或标注(完整代码附在文章末尾). 首先,下载 Free Spire. ...
- java给word和pdf文档添加二维码
背景 目前收到一个需求,需要给上传的word和pdf文档添加二维码,防止职工给领导签字时伪造合同,所以提出这个需求,上传的word和pdf添加二维码,然后使用我们的app扫码查看相关的信息. 解决方案 ...
- elementui表格添加滚动条_如何给PDF文档添加超链接?
有时我们在编辑PDF文档时,需要给目录做快速跳转或给文中的某些内容跳转到其他网页,这就需要用到超链接的功能.下面就一起看看给PDF文档添加超链接的是如何操作的. https://www.zhihu.c ...
- pdf常用字体包 -baijiahao_如何给PDF文档添加和插入页码?
如今PDF格式因其比常用的office格式更稳定,被越来越多人使用,但也正因为近几年才慢慢广泛使用,对于其编辑的相关操作也相对陌生,那么如何给PDF文档添加页码呢?如果不喜欢从第一页就开始编码,如何直 ...
最新文章
- Linux(lamp安装)
- EdgeGallery — MEP — 安装部署
- rabbitMq自动创建队列
- Boost:glob测试程序
- PowerShell尝试登录SQL Server
- js中关于Blob对象的介绍与使用
- Linux 关机命令详解 转自脚本之家
- java大神请出来_求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。...
- Spring事务操作-事务引入
- Wireshark设置interface 时提示“There are no interfaces on which a capture can be done ”
- es6 语法 (类与对象)
- 小米游戏本2019 I7-9750H安装黑苹果11.5 big Sur
- 元转万元单位换算_excel数值单位转换-----元与万元、千元、百元的转换
- 判断火车票座位python代码_12306 火车票监控Python代码详解
- ttl传输种过期_Ping提示TTL传输中过期导致Web不能访问
- 拼车小程序的市场应用与外包开发的建议
- SATA电源线和数据线接口定义
- Ubuntu18.04安装realsense d435i SDK和ROS Wrapper以及相机标定全过程
- Win10如何使用win7的照片查看器
- 第三周实验题目2——robots协议