• 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");

    添加页眉后的效果图:

    全部代码:

     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 = 0;
    39             float x = PdfPageSize.A4.Width;
    40             topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format);
    41             
    42             PdfImage headerImage = PdfImage.FromFile(@"C:UsersAdministratorPicturesunder_construction.jpg");
    43             float width = headerImage.Width;
    44             float height = headerImage.Height;
    45             PointF pageLeftTop = new PointF(0, 0);
    46             topSpace.Graphics.DrawImage(headerImage, 0, 0, width / 2, height / 2);
    47         }
    48     }
    49 }
    View Code

    谢谢浏览!

  • 相关阅读:
    C#类中的字段、属性和方法
    Linux下制作Windows启动U盘的工具
    将samba共享目录映射为本地文件夹(百度网盘直接下载到samba共享目录下)
    《怎样编写研究报告》读书笔记0-0
    mcnp的重复探测器单元计数-fmesh卡的介绍
    单能X射线产生方法
    matlab学习之降噪平滑算法
    matlab学习之求解函数的根和极小值
    matlab学习之绘制参数曲线,添加辅助线以及颜色设置
    MC资源整理
  • 原文地址:https://www.cnblogs.com/Yesi/p/6248466.html
Copyright © 2020-2023  润新知