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文档添加文本和图片页眉相关推荐

  1. 利用iTextSharp组件给PDF文档添加图片水印,文字水印

    最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为:   usingSy ...

  2. 使用免费组件view pdf 文档

    C#教程https://www.xin3721.com/eschool/CSharpxin3721/ "Is there any way to view PDF files in a Win ...

  3. Java 处理PDF文档(一):页眉页脚、水印、背景、附件

    前言 本文将介绍通过Java编程来处理PDF文档的一些方法,因为一篇文档的处理可能包括很多内容,比如文档安全性设置(水印.加密/解密).文本/图片/图形操作.注释.附件.域.文档转换(其他文件格式转为 ...

  4. python能在pdf上加内容吗_在Python中向现有PDF文档添加文本

    在四处寻找之后,我终于找到了解决办法: 结果发现this毕竟是正确的方法. 但是,我觉得这不够冗长. 这张海报似乎是从here(相同的变量名等)中摘取的. 想法:用Reportlab创建新的空白PDF ...

  5. 使用IText组件在PDF文档上绘制椭圆形印章的算法分析及代码分享

    1. 引言 PDF是一种和操作系统及平台无关的.可移植的电子文件格式,其以PostScript语言图像模型为基础,无论在哪种打印机上,都可保证精确的颜色和准确的打印效果.PDF将真实地再现原稿的每一个 ...

  6. C# 如何给现有/新建PDF文档添加注释或标注

    这篇文章主要介绍如何使用免费版PDF组件Free Spire.PDF及C#编程语言给现有PDF文档或新建的PDF文档中的文本添加注释或标注(完整代码附在文章末尾). 首先,下载 Free Spire. ...

  7. java给word和pdf文档添加二维码

    背景 目前收到一个需求,需要给上传的word和pdf文档添加二维码,防止职工给领导签字时伪造合同,所以提出这个需求,上传的word和pdf添加二维码,然后使用我们的app扫码查看相关的信息. 解决方案 ...

  8. elementui表格添加滚动条_如何给PDF文档添加超链接?

    有时我们在编辑PDF文档时,需要给目录做快速跳转或给文中的某些内容跳转到其他网页,这就需要用到超链接的功能.下面就一起看看给PDF文档添加超链接的是如何操作的. https://www.zhihu.c ...

  9. pdf常用字体包 -baijiahao_如何给PDF文档添加和插入页码?

    如今PDF格式因其比常用的office格式更稳定,被越来越多人使用,但也正因为近几年才慢慢广泛使用,对于其编辑的相关操作也相对陌生,那么如何给PDF文档添加页码呢?如果不喜欢从第一页就开始编码,如何直 ...

最新文章

  1. Linux(lamp安装)
  2. EdgeGallery — MEP — 安装部署
  3. rabbitMq自动创建队列
  4. Boost:glob测试程序
  5. PowerShell尝试登录SQL Server
  6. js中关于Blob对象的介绍与使用
  7. Linux 关机命令详解 转自脚本之家
  8. java大神请出来_求java大神,请分析以下代码,写出执行结果,并解释每行结果输出的原因。...
  9. Spring事务操作-事务引入
  10. Wireshark设置interface 时提示“There are no interfaces on which a capture can be done ”
  11. es6 语法 (类与对象)
  12. 小米游戏本2019 I7-9750H安装黑苹果11.5 big Sur
  13. 元转万元单位换算_excel数值单位转换-----元与万元、千元、百元的转换
  14. 判断火车票座位python代码_12306 火车票监控Python代码详解
  15. ttl传输种过期_Ping提示TTL传输中过期导致Web不能访问
  16. 拼车小程序的市场应用与外包开发的建议
  17. SATA电源线和数据线接口定义
  18. Ubuntu18.04安装realsense d435i SDK和ROS Wrapper以及相机标定全过程
  19. Win10如何使用win7的照片查看器
  20. 第三周实验题目2——robots协议

热门文章

  1. 用unity写一个推箱子
  2. c语言if条件语句PPT,C语言条件语句if.ppt
  3. 磁盘配额(quota)
  4. Linux下安装intel数学库Math Kernel Library(MKL)
  5. 拆解全志F1C100s唱戏机
  6. 脑壳清痛之---总结thinkphp5 怎么用odbc连接sql2000
  7. 怎么创建ed2k链接
  8. 联想拯救者刃7000K 2023评测
  9. 火绒安全软件(安全防护软件)官方中文版V5.0.59.0 | 火绒安全软件好用吗
  10. 撤稿是否属于学术不端?