前言
下面这篇文章向大家分享如何使用了免费组件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