页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码、日期、公司徽标、文档标题、文件名或作者名等等。那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件Free Spire.PDF给PDF文档添加文本和图片页眉。这个组件提供了一些方法,可以帮助我们快速方便地实现此目的。

添加页眉步骤:

首先,创建一个Visual C#控制台项目,添加组件引用并使用以下命名空间。

  1. using System;
  2. using System.Drawing;
  3. using Spire.Pdf;
  4. using Spire.Pdf.Graphics;

在下列代码中,我们先定义一个SetDocumentTemplate()方法来创建一个PDF文档模板,这个模板只包含文本和图片页眉。然后,调用DrawString(string s, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format)方法和DrawImage(PdfImage image, float x, float y, float width, float height)方法插入自定义的文本和图片页眉。

  1. static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin)
  2. {
  3. //创建PDF模板
  4. PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top);
  5. topSpace.Foreground = true;
  6. doc.Template.Top = topSpace;
  7. //添加文本页眉
  8. PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋体", 15f), true);
  9. PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
  10. String Text = "PDF文本页眉";
  11. float y = ;
  12. float x = PdfPageSize.A4.Width;
  13. topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format);
  14. //添加图片页眉
  15. PdfImage headerImage = PdfImage.FromFile(@"logo.png");
  16. float width = headerImage.Width;
  17. float height = headerImage.Height;
  18. PointF pageLeftTop = new PointF( , );
  19. topSpace.Graphics.DrawImage(headerImage,,,width/,height/);
  20. }

接下来再创建一个PDF文档,主函数内调用SetDocumentTemplate()方法将带有文本和图片页眉的模板应用到新建的PDF文档中。具体步骤:

第一步:创建一个PDF文档对象。

  1. PdfDocument doc = new PdfDocument();

第二步:设置页边距。

  1. PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
  2. PdfMargins margin = new PdfMargins();
  3. margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
  4. margin.Bottom = margin.Top;
  5. margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
  6. margin.Right = margin.Left;

第三步:PDF文档中应用模板。

  1. SetDocumentTemplate(doc, PdfPageSize.A4, margin);

第四步:PDF文档添加页面。

  1. PdfPageBase page = doc.Pages.Add();
  2. doc.Pages.Add();

第五步:保存并打开文档。

  1. doc.SaveToFile("页眉.pdf");
  2. System.Diagnostics.Process.Start("页眉.pdf");

添加页眉后的效果图:

全部代码:

  1. using System;
  2. using Spire.Pdf;
  3. using System.Drawing;
  4. using Spire.Pdf.Graphics;
  5.  
  6. namespace PDF添加页眉
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. PdfDocument doc = new PdfDocument();
  13.  
  14. PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
  15. PdfMargins margin = new PdfMargins();
  16. margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
  17. margin.Bottom = margin.Top;
  18. margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
  19. margin.Right = margin.Left;
  20.  
  21. SetDocumentTemplate(doc, PdfPageSize.A4, margin);
  22. PdfPageBase page = doc.Pages.Add();
  23. doc.Pages.Add();
  24.  
  25. doc.SaveToFile("页眉.pdf");
  26. System.Diagnostics.Process.Start("页眉.pdf");
  27. }
  28.  
  29. static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin)
  30. {
  31. PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top);
  32. topSpace.Foreground = true;
  33. doc.Template.Top = topSpace;
  34.  
  35. PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋体", 15f), true);
  36. PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
  37. String Text = "PDF文本页眉";
  38. float y = ;
  39. float x = PdfPageSize.A4.Width;
  40. topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format);
  41.  
  42. PdfImage headerImage = PdfImage.FromFile(@"C:\Users\Administrator\Pictures\under_construction.jpg");
  43. float width = headerImage.Width;
  44. float height = headerImage.Height;
  45. PointF pageLeftTop = new PointF(, );
  46. topSpace.Graphics.DrawImage(headerImage, , , width / , height / );
  47. }
  48. }
  49. }

谢谢浏览!

C#给PDF文档添加文本和图片页眉的更多相关文章

  1. C#如何给PDF文档添加注释

    整理文档时,我们可能会需要在一些或一段文字上添加注释加以说明,那如何以编程的方式实现呢?本文将实例讲述C#中如何使用免费组件给PDF文档添加文本注释,包括自由文本注释.自由文本注释能允许我们自定义它的 ...

  2. 如何给PDF文档添加和删除贝茨编号

    PDF文件的使用频率高了,我们也不只局限于使用PDF文件了,也会需要编辑PDF文件的时候,那么如何在PDF文件中添加和去除贝茨编号呢,应该有很多小伙伴都想知道吧,今天就来跟大家分享一下吧,小伙伴们就一 ...

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

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

  4. ABBYY FineReader 15 如何为PDF文档添加页眉页脚

    页眉.页脚是文档页面顶部或底部重复出现的文本信息.很多用户会习惯在文档页面的顶部与底部区域添加页眉.页脚来展现页码.文档标题.作者姓名.品牌名称等附加信息.而ABBYY FineReader 15(W ...

  5. C# 给现有PDF文档添加页眉、页脚

    概述 页眉页脚是一篇完整.精致的文档的重要组成部分.在页眉页脚处,可以呈现的内容很多,如公司名称.页码.工作表名.日期.图片,如LOGO.标记等.在之前的文章中介绍了如何通过新建一页空白PDF页来添加 ...

  6. Java 设置PDF文档背景——单色背景、图片背景

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...

  7. 关于根据模板生成pdf文档,差入图片和加密

    import com.alibaba.fastjson.JSONObject; import com.aliyun.oss.OSSClient; import com.itextpdf.text.pd ...

  8. C#添加PDF页眉——添加文本、图片到页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  9. C# 操作Word 文档——添加Word页眉、页脚和页码

    在Word文档中,我们可以通过添加页眉.页脚的方式来丰富文档内容.添加页眉.页脚时,可以添加时间.日期.文档标题,文档引用信息.页码.内容解释.图片/LOGO等多种图文信息.同时也可根据需要调整文字或 ...

随机推荐

  1. 恋爱虽易,相处不易:当EntityFramework爱上AutoMapper

    剧情开始 为何相爱? 相处的问题? 女人的伟大? 剧情收尾? 有时候相识即是一种缘分,相爱也不需要太多的理由,一个眼神足矣,当EntityFramework遇上AutoMapper,就是如此,恋爱虽易 ...

  2. 在Linux虚拟机下配置tomcat

    1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...

  3. 23种设计模式--建造者模式-Builder Pattern

    一.建造模式的介绍       建造者模式就是将零件组装成一个整体,用官方一点的话来讲就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示.生活中比如说组装电脑,汽车等等这些都是建 ...

  4. CoreCRM 开发实录——开始之新项目的技术选择

    2016年11月,接受了一个工作,是对"悟空CRM"进行一些修补.这是一个不错的 CRM,开源,并提供一个 SaaS 的服务.正好微软的 .NET Core 和 ASP.NET C ...

  5. ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

    ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...

  6. 从netty-example分析Netty组件续

    上文我们从netty-example的Discard服务器端示例分析了netty的组件,今天我们从另一个简单的示例Echo客户端分析一下上个示例中没有出现的netty组件. 1. 服务端的连接处理,读 ...

  7. 玩转spring boot——结合JPA入门

    参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...

  8. Java 堆内存与栈内存异同(Java Heap Memory vs Stack Memory Difference)

    --reference Java Heap Memory vs Stack Memory Difference 在数据结构中,堆和栈可以说是两种最基础的数据结构,而Java中的栈内存空间和堆内存空间有 ...

  9. Postman接口调试神器-Chrome浏览器插件

    首先大家可以去这个地址下载 Postman_v4.1.3 这个版本,我用的就是这个版本 http://chromecj.com/web-development/2014-09/60/download. ...

  10. 负载均衡——nginx理论

     nginx是什么? nginx是一个强大的web服务器软件,用于处理高并发的http请求和作为反向代理服务器做负载均衡.具有高性能.轻量级.内存消耗少,强大的负载均衡能力等优势.  nginx架构? ...