利用C#如何给PDF文档添加文本与图片页眉
作者:Yesi
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码、日期、公司徽标、文档标题、文件名或作者名等等。那么我们如何以编程的方式添加页眉呢?这篇文章主要介绍了利用C#如何给PDF文档添加文本与图片页眉的相关资料,需要的朋友可以参考下
前言
下面这篇文章向大家分享如何使用了免费组件Free Spire.PDF给PDF文档添加文本和图片页眉。这个组件提供了一些方法,可以帮助我们快速方便地实现此目的。
添加页眉步骤:
首先,创建一个Visual C#控制台项目,添加组件引用并使用以下命名空间。
using System; using System.Drawing; using Spire.Pdf; 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)
方法,插入自定义的文本和图片页眉。
static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin) { //创建PDF模板 PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top); topSpace.Foreground = true; doc.Template.Top = topSpace; //添加文本页眉 PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋体", 15f), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); String Text = "PDF文本页眉"; float y = 0; float x = PdfPageSize.A4.Width; topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format); //添加图片页眉 PdfImage headerImage = PdfImage.FromFile(@"logo.png"); float width = headerImage.Width; float height = headerImage.Height; PointF pageLeftTop = new PointF(0 , 0); topSpace.Graphics.DrawImage(headerImage,0,0,width/2,height/2); }
接下来再创建一个PDF文档,主函数内调用SetDocumentTemplate()
方法将带有文本和图片页眉的模板应用到新建的PDF文档中。
具体步骤:
第一步:创建一个PDF文档对象。
PdfDocument doc = new PdfDocument();
第二步:设置页边距。
PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left;
第三步:PDF文档中应用模板。
SetDocumentTemplate(doc, PdfPageSize.A4, margin);
第四步:PDF文档添加页面。
PdfPageBase page = doc.Pages.Add(); doc.Pages.Add();
第五步:保存并打开文档。
doc.SaveToFile("页眉.pdf"); System.Diagnostics.Process.Start("页眉.pdf");
添加页眉后的效果图:
全部代码:
using System; using Spire.Pdf; using System.Drawing; using Spire.Pdf.Graphics; namespace PDF添加页眉 { class Program { static void Main(string[] args) { PdfDocument doc = new PdfDocument(); PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left; SetDocumentTemplate(doc, PdfPageSize.A4, margin); PdfPageBase page = doc.Pages.Add(); doc.Pages.Add(); doc.SaveToFile("页眉.pdf"); System.Diagnostics.Process.Start("页眉.pdf"); } static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin) { PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top); topSpace.Foreground = true; doc.Template.Top = topSpace; PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋体", 15f), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); String Text = "PDF文本页眉"; float y = 0; float x = PdfPageSize.A4.Width; topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format); PdfImage headerImage = PdfImage.FromFile(@"C:\Users\Administrator\Pictures\under_construction.jpg"); float width = headerImage.Width; float height = headerImage.Height; PointF pageLeftTop = new PointF(0, 0); topSpace.Graphics.DrawImage(headerImage, 0, 0, width / 2, height / 2); } } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用C#能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。