前言
下面这篇文章向大家分享如何使用了免费组件Free Spire.PDF给PDF文档添加文本和图片页眉。这个组件提供了一些方法,可以帮助我们快速方便地实现此目的。
添加页眉步骤:
首先,创建一个Visual C#控制台项目,添加组件引用并使用以下命名空间。
1
2
3
4
|
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)
方法,插入自定义的文本和图片页眉。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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文档对象。
1
|
PdfDocument doc = new PdfDocument(); |
第二步:设置页边距。
1
2
3
4
5
6
|
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文档中应用模板。
1
|
SetDocumentTemplate(doc, PdfPageSize.A4, margin); |
第四步:PDF文档添加页面。
1
2
|
PdfPageBase page = doc.Pages.Add(); doc.Pages.Add(); |
第五步:保存并打开文档。
1
2
|
doc.SaveToFile( "页眉.pdf" ); System.Diagnostics.Process.Start( "页眉.pdf" ); |
添加页眉后的效果图:
全部代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
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#能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://www.cnblogs.com/Yesi/p/6248466.html