精华内容
下载资源
问答
  • 但我们在添加页码的时候却发现,页码总是从论文第一开始,从封面开始,这是违背论文格式要求的。那如何解决这种尴尬的局面呢?今天作者就来围绕这个问题来跟大家说下,如何解决这个问题。首先,要先知道,一个刚...

    页码,即第多少多少页。它方便读者在目录处找到想要看的文章内容。

    6e1c82584065a722a6109da9e4005a6f.png

    红色圈中部分我们成为页码

    论文正文开始处是哪?我们一般认为为“绪论”开始处。而正常的论文格式要求作者的页码从正文处开始,即从绪论所在页开始。但我们在添加页码的时候却发现,页码总是从论文第一页开始,从封面页开始,这是违背论文格式要求的。那如何解决这种尴尬的局面呢?今天作者就来围绕这个问题来跟大家说下,如何解决这个问题。

    首先,要先知道,一个刚写好的论文,是没有分节符的。啥意思呢?就是说这个论文的所有内容都是整体的,只有一个章节(这个章节包含封面页和摘要页等)。你删除任意一个页的页码,那整个文章的页码会全部消失。注意,是全部消失,相信有很多人经历过这个问题了:明明只想在正文添加页码,哪知非正文也出现页码,而且还占用了页码。

    那该有人问了,我怎么知道我的论文有几个分节符,都改了好多东西,我哪知道我这个论文有几个分节符呢?!知道自己有几个分节符,方法很简单。点“视图”,再点“大纲视图”,就会看到分节符那条线。(图中蓝色部分为提示点)下图这个论文部分有一个分节符,这说明作者自己添加了一个分节符,事实上,论文写完是默认没有分节符的,要根据需要自己添加。注意:如果想删除这个分节符,可以在大纲视图下,把光标放在所在分节符线上,按Shift+Delete,就能删除掉了。

    5a54f4d8dc0390148af8897b8d9e8df9.png

    论文存在分节符,蓝色圈中部分所在分割线

    大家可以依据这个方法看下自己有几个分节符,多往下翻翻,一般没套用论文模板的情况下,都是没有分节符的。。其实分节符,就是用来处理页码、页脚、页眉、脚注、尾注等这些东西的。如果一个论文没有分节符,那如果要添加某些页的页眉,那么整个论文都会被添加相同的页眉;你想删除一个页眉,整个文章的页眉都会被删除;你想改某一页的页眉,那整个文章的页眉也会发生发生相应变化。就是这个道理,页码也差不多一样道理。

    那这个时候,就需要添加分节符来隔开它们。这样我想改哪些页的页码,就改哪些页的,那其他页的页码不会受影响。明白了这个道理后,在正文开始添加页码的具体操作过程如下:

    1.首先,找到绪论页。添加一个分节符,注意注意,这里添加分节符要在“绪论”俩字前面添加。网上好多人讲的添加位置不够明确,很多人这第一步就做错了。在这里添加表示正文页码跟目录以上部分页码被分开了。当想删除目录以上页码时,正文部分不会受影响。

    9927db193ea5927aaa315ac1e093c11d.png

    光标移动到绪论前

    2.接着,点页面布局-分隔符-分节符下的下一页。(一般用的比较多的是下一页,偶数页和奇数页用于页眉奇数在左边,偶数在右边的时候,这种情况较少。在这里先不说这个。)

    12d4dda596cbe14fd19e43197932cf25.png

    点“下一页”

    这时候就出现分节符的,我们这时候是看不到的,好像什么都没变一样,但其实分节符已经被添加了。我们可以选择上面说的大纲视图看到。

    8e8a60a9ccb94f6db389321905366dde.png

    大纲视图下,可以看到分节符可以已经被添加了

    3.双击绪论页的底部,会自动出现页眉、页脚、页码功能,如下图:

    c69b451f8662d39e9ad2e63622d86f65.png

    双击页面底部会出现红线所划功能

    这时候,我们点击页码,点页码底端,选择普通数字2,即页码在中间的那种。这个可以根据自身情况,或者院校要求,想用哪个用哪个。

    ceadeaa613dd4d4bba0e64aef8e6027d.png

    选择页码显示位置

    4.点好后,会自动跳出页码数值。这时候,点设置页码格式

    ac41c466856e9ca5c00caf94e1bc1cca.png

    点设置页码格式

    再选择起始页码,并在白框内输入数值1。点确定。

    a0af79777a26443fc35c39b10b43025b.png

    选择‘’‘’‘起始页码’,并在白框内输入数值1

    5.再把红色圈中的“链接到前一条页眉”勾去掉,即点一下,去掉成功后应该不再显示是黄色。

    39c62d8afd16ab895c788ca63bebe78b.png

    把黄色“链接到前一条页眉”去掉,点一下即可

    6.最后一步,找到目录页,双击最低端,把它的页码删掉。这时候目录及以上页码同时会被删除。(道理前面已经说过)。

    36c0877b6dc17e2d2c05fb9a2d9d1028.png

    把目录页页码删除

    这样就完成了。在检查下,把空格的部分删除掉就行了,还是比较简单的。以后自己想在哪编不同的页码,自己就可以通过在合适的位置添加分节符,添加多少个都可以。可能有些人不太重视这个页码,让论文从封面页就开始有页码了,这样是不对的。这样就显得有些不够专业了。而细节也很容易被忽视的,而正是细节能决定一个人的专业程度,还有可能决定成败呢。觉得这个方法有用的,可以给作者点个赞,毕竟想得到鼓励与支持。下个文章,将讲述如何更好的添加页眉。(以上图示均通过Word12010版来操作的,括号里内容均为提示内容和一些内容补充)

    展开全文
  • 在之前的文章中介绍了如何通过新建一空白PDF添加页眉到该页面,包括文字页面、图片页眉。但是在实际应用中,该方法会有一定局限性,通过测试,下面将介绍C#现有的PDF文档添加页眉页脚的方法。该方法中,丰富...

    概述

    页眉页脚是一篇完整、精致的文档的重要组成部分。在页眉页脚处,可以呈现的内容很多,如公司名称、页码、工作表名、日期、图片,如LOGO、标记等。在之前的文章中介绍了如何通过新建一页空白PDF页来添加页眉到该页面,包括文字页面、图片页眉。但是在实际应用中,该方法会有一定局限性,通过测试,下面将介绍C#给现有的PDF文档添加页眉页脚的方法。该方法中,丰富了我们对于添加页眉页脚的内容形式,包括添加图片、文字、超链接、页码等。

    使用工具

    注:下载该类库后,注意在程序中添加引用Spire.Pdf.dll(dll文件可在安装路径下的Bin文件夹中获取)

     

    C# 代码步骤(供参考)

    步骤 1 :添加using指令

    using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System;
    using System.Drawing;

    步骤 2 :加载测试文档

    //实例化PdfDocument类,加载测试文档
    PdfDocument existingPdf = new PdfDocument();
    existingPdf.LoadFromFile("Test.pdf");

    步骤 3 :添加页眉页脚

    //调用DrawHeader()方法在现有文档添加页眉
    DrawHeader(existingPdf);
    
    //调用DrawFooter()方法在现有文档添加页脚
    DrawFooter(existingPdf);

    注:这里需要自定义方法来分别添加页眉、页脚到PDF文档。

    自定义方法添加页眉:

    //在页面上方空白部位绘制页眉
    static void DrawHeader(PdfDocument doc)
    {
        //获取页面大小
        SizeF pageSize = doc.Pages[0].Size;
    
        //声明x,y两个float型变量
        float x = 90;
        float y = 20;
    
        for (int i = 0; i < doc.Pages.Count; i++)
        {
            //在每一页的指定位置绘制图片
            PdfImage headerImage = PdfImage.FromFile("logo.png");
            float width = headerImage.Width / 7;
            float height = headerImage.Height / 7;
            doc.Pages[i].Canvas.DrawImage(headerImage, x, y, width, height);
    
            //在每一页的指定位置绘制横线
            PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
            doc.Pages[i].Canvas.DrawLine(pen, x, y + height + 2, pageSize.Width - x, y + height + 2);
        }
    }

    自定义方法添加页脚:

    //在页面下方空白部位绘制页脚
    static void DrawFooter(PdfDocument doc)
    {
        //获取页面大小
        SizeF pageSize = doc.Pages[0].Size;
    
        //声明x,y两个float型变量
        float x = 90;
        float y = pageSize.Height - 72;
    
        for (int i = 0; i < doc.Pages.Count; i++)
        {
            //在每一页的指定位置绘制横线
            PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
            doc.Pages[i].Canvas.DrawLine(pen, x, y, pageSize.Width - x, y);
    
            //在每一页的指定位置绘制文字
            y = y + 5;
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", 10f, FontStyle.Bold), true);
            PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
            String footerText = " Website\n https://g20.org/";
            doc.Pages[i].Canvas.DrawString(footerText, font, PdfBrushes.Black, x, y, format);  
           
            //在每一页的指定位置当前页码和总页码
            PdfPageNumberField number = new PdfPageNumberField();
            PdfPageCountField count = new PdfPageCountField();
            PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "{0}/{1}", number, count);
            compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
            SizeF size = font.MeasureString(compositeField.Text);
            compositeField.Bounds = new RectangleF(pageSize.Width - x - size.Width, y, size.Width, size.Height);
            compositeField.Draw(doc.Pages[i].Canvas);
        }
    }

    步骤 4 :保存文档

    existingPdf.SaveToFile("output.pdf");
    System.Diagnostics.Process.Start("output.pdf");

    代码完成后,调试运行程序,生成文档。打开文档后,效果如下:

     全部代码:

    using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System;
    using System.Drawing;
    
    namespace PdfHeader
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载一个测试文档 
                PdfDocument existingPdf = new PdfDocument();
                existingPdf.LoadFromFile("Test.pdf");
    
                //调用DrawHeader()方法在现有文档添加页眉
                DrawHeader(existingPdf);
    
                //调用DrawFooter()方法在现有文档添加页脚
                DrawFooter(existingPdf);
    
                //保存并打开文档
                existingPdf.SaveToFile("output.pdf");
                System.Diagnostics.Process.Start("output.pdf");
    
            }
            //在页面上方空白部位绘制页眉
            static void DrawHeader(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float型变量
                float x = 90;
                float y = 20;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制图片
                    PdfImage headerImage = PdfImage.FromFile("logo.png");
                    float width = headerImage.Width / 7;
                    float height = headerImage.Height / 7;
                    doc.Pages[i].Canvas.DrawImage(headerImage, x, y, width, height);
    
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y + height + 2, pageSize.Width - x, y + height + 2);
                }
            }
    
            //在页面下方空白部位绘制页脚
            static void DrawFooter(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float型变量
                float x = 90;
                float y = pageSize.Height - 72;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y, pageSize.Width - x, y);
    
                    //在每一页的指定位置绘制文字
                    y = y + 5;
                    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", 10f, FontStyle.Bold), true);
                    PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
                    String footerText = " Website\n https://g20.org/";
                    doc.Pages[i].Canvas.DrawString(footerText, font, PdfBrushes.Black, x, y, format);  
                   
                    //在每一页的指定位置当前页码和总页码
                    PdfPageNumberField number = new PdfPageNumberField();
                    PdfPageCountField count = new PdfPageCountField();
                    PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "{0}/{1}", number, count);
                    compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
                    SizeF size = font.MeasureString(compositeField.Text);
                    compositeField.Bounds = new RectangleF(pageSize.Width - x - size.Width, y, size.Width, size.Height);
                    compositeField.Draw(doc.Pages[i].Canvas);
                }
            }
        }
    }
    View Code

    总结

    相较于上篇文章中的添加页眉的方法,本方法在处理现有的PDF文档中更具实用性。当然,两种方法针对不同的程序设计需要,满足不同的需求,我们在选择这两种方法时,可酌情而定。

    (本文完)

    如需转载,请注明出处。

    转载于:https://www.cnblogs.com/Yesi/p/9626513.html

    展开全文
  • C# 添加PDF页眉/页脚

    2018-08-30 15:43:14
    概述页眉页脚是一篇完整、精致的文档的重要组成部分。在页眉页脚处,可以呈现的内容很多,如公司名称、页码、工作表名、...1.通过添加新的一,在新建的页面上来添加页眉页脚 2.通过现有文档直接添加页眉页脚 下...
        

    概述
    页眉页脚是一篇完整、精致的文档的重要组成部分。在页眉页脚处,可以呈现的内容很多,如公司名称、页码、工作表名、日期、图片,如LOGO、标记等。在下面的文章中,将介绍如何在PDF中添加页眉页脚。通过代码测试,添加页眉页脚可以分两种情况来实现效果:

    1.通过添加新的一页,在新建的页面上来添加页眉页脚

    2.通过给现有文档直接添加页眉页脚

    下面将根据这两种情况介绍具体的C#代码操作

    使用工具


    示例代码(供参考)
    1.新建一页来添加页眉页脚
    1.1 添加页眉
    【C#】

    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System;
    
    namespace AddHeader_PDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //新建一个PdfDocument类对象,并添加一页
                PdfDocument pdf = new PdfDocument();
                PdfPageBase page = pdf.Pages.Add();
    
                //设置margin
                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;
    
                //调用AddHeader()方法添加页眉
                AddHeader(pdf, PdfPageSize.A4, margin);
    
                //保存并打开文档
                pdf.SaveToFile("PDF页眉.pdf");
                System.Diagnostics.Process.Start("PDF页眉.pdf");
            }
    
            static void AddHeader(PdfDocument doc, SizeF pageSize, PdfMargins margin)
            {
                //初始化一个PdfPageTemplateElement对象,用于创建页眉
                PdfPageTemplateElement headerSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top);
                headerSpace.Foreground = true;
                doc.Template.Top = headerSpace;
    
                //在页眉部分绘入文字
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
                String headerText = "WORLD TRADE ORGANIZATION, WTO \n THE INTERNATIONAL ORGANIZATION THAT REGULATES INTERNATIONAL TRADE";
                float x = PdfPageSize.A4.Width;
                float y = 0;
                headerSpace.Graphics.DrawString(headerText, font, PdfBrushes.Black, x, y, format);
    
                //在页眉部分绘入图片
                PdfImage headerImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\1.png");
                float width = headerImage.Width / 2;
                float height = headerImage.Height / 3;
                headerSpace.Graphics.DrawImage(headerImage, 0, 0, width, height);
    
            }
        }
    }
    

    页眉添加效果:

    1.2添加页脚
    【C#】

    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System;
    using Spire.Pdf.AutomaticFields;
    
    namespace AddFooter_PDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //新建一个PdfDocument类对象,添加一页
                PdfDocument doc = new PdfDocument();
                PdfPageBase page = doc.Pages.Add();
    
                //设置margin
                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;
    
                //调用AddFooter()方法添加页脚
                AddFooter(doc, PdfPageSize.A4, margin);
    
                //调用AddPageNumber()方法添加页码
                AddPageNumber(doc, margin);
    
                //保存并打开文档
                doc.SaveToFile("PDF页脚.pdf");
                System.Diagnostics.Process.Start("PDF页脚.pdf");
            }
    
            static void AddFooter(PdfDocument doc, SizeF pageSize, PdfMargins margin)
            {
                //初始化一个PdfPageTemplateElement对象,用于创建页脚
                PdfPageTemplateElement footerSpace = new PdfPageTemplateElement(pageSize.Width, margin.Bottom);
                footerSpace.Foreground = true;
                doc.Template.Bottom = footerSpace;
    
                //在页脚部分绘入文字
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
                String headerText = "Website : www.wto.org";
                float x = PdfPageSize.A4.Width / 2;
                float y = 0;
                footerSpace.Graphics.DrawString(headerText, font, PdfBrushes.Black, x, y, format);
            }
            static void AddPageNumber(PdfDocument doc, PdfMargins margin)
            {
                //添加页码到页脚部分
                foreach (PdfPageBase page in doc.Pages)
                {
                    PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);
                    int x1 = Convert.ToInt32(page.Canvas.ClientSize.Width / 2);
                    int y1 = Convert.ToInt32(page.Canvas.ClientSize.Height - margin.Bottom + 20);
                    Rectangle bounds = new Rectangle(x1, y1, 20, 20);
                    PdfPageNumberField field = new PdfPageNumberField();
                    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                    field.Font = font;
                    field.StringFormat = format1;
                    field.Brush = PdfBrushes.Black;
                    field.Bounds = bounds;
                    field.Draw(page.Canvas);
                }
    
            }
        }
    }
    

    页脚添加效果:
    图片描述

    2.给现有PDF文档添加页眉页脚
    【C#】

    using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System;
    using System.Drawing;
    
    namespace PdfHeader
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载一个测试文档
                PdfDocument existingPdf = new PdfDocument();
                existingPdf.LoadFromFile("Test.pdf");
    
                //调用DrawHeader方法在现有文档添加页眉
                DrawHeader(existingPdf);
    
                //调用DrawFooter方法在现有文档添加页脚
                DrawFooter(existingPdf);
    
                //保存并打开文档
                existingPdf.SaveToFile("output.pdf");
                System.Diagnostics.Process.Start("output.pdf");
    
            }
            //在页面上方空白部位绘制页眉
            static void DrawHeader(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float类型变量
                float x = 90;
                float y = 20;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制图片
                    PdfImage headerImage = PdfImage.FromFile("logo.png");
                    float width = headerImage.Width / 7;
                    float height = headerImage.Height / 7;
                    doc.Pages[i].Canvas.DrawImage(headerImage, x, y, width, height);
    
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y + height + 2, pageSize.Width - x, y + height + 2);
                }
            }
    
            //在页面下方空白部位绘制页脚
            static void DrawFooter(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float类型变量
                float x = 90;
                float y = pageSize.Height - 72;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y, pageSize.Width - x, y);
    
                    //在每一页的指定位置绘制文字
                    y = y + 5;
                    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", 10f, FontStyle.Bold), true);
                    PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
                    String footerText = " Website\n https://g20.org/";
                    doc.Pages[i].Canvas.DrawString(footerText, font, PdfBrushes.Black, x, y, format);                 
                    //在每一页的指定位置当前页码和总页码
                    PdfPageNumberField number = new PdfPageNumberField();
                    PdfPageCountField count = new PdfPageCountField();
                    PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "{0}/{1}", number, count);
                    compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
                    SizeF size = font.MeasureString(compositeField.Text);
                    compositeField.Bounds = new RectangleF(pageSize.Width - x - size.Width, y, size.Width, size.Height);
                    compositeField.Draw(doc.Pages[i].Canvas);
                }
            }
        }
    }
    

    测试效果:

    以上是本次关于C#添加PDF页眉页脚的全部内容,两种情况中的示例方法,可以选择参考使用。
    (本文完)

    展开全文
  • 第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一...
  • 第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一...
  • 页眉页脚是一篇完整、精致的文档的重要组成部分。...通过添加新的一,在新建的页面上来添加页眉页脚 通过现有文档直接添加页眉页脚下面将根据这两种情况介绍具体的C#代码操作(示例供参考)使用工具:Free ...

    页眉页脚是一篇完整、精致的文档的重要组成部分。在页眉页脚处,可以呈现的内容很多,如公司名称、页码、工作表名、日期、图片,如LOGO、标记等。在下面的文章中,将介绍如何在PDF中添加页眉页脚。通过代码测试,添加页眉页脚可以分两种情况来实现效果:

    • 通过添加新的一页,在新建的页面上来添加页眉页脚
    • 通过给现有文档直接添加页眉页脚
      下面将根据这两种情况介绍具体的C#代码操作
      (示例供参考)
      使用工具:Free Spire.PDF for .NET 4.3(社区版)

      1.新建一页来添加页眉页脚

      1.1 添加页眉

      【C#】

    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System;
    
    namespace AddHeader_PDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //新建一个PdfDocument类对象,并添加一页
                PdfDocument pdf = new PdfDocument();
                PdfPageBase page = pdf.Pages.Add();
    
                //设置margin
                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;
    
                //调用AddHeader()方法添加页眉
                AddHeader(pdf, PdfPageSize.A4, margin);
    
                //保存并打开文档
                pdf.SaveToFile("PDF页眉.pdf");
                System.Diagnostics.Process.Start("PDF页眉.pdf");
            }
    
            static void AddHeader(PdfDocument doc, SizeF pageSize, PdfMargins margin)
            {
                //初始化一个PdfPageTemplateElement对象,用于创建页眉
                PdfPageTemplateElement headerSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top);
                headerSpace.Foreground = true;
                doc.Template.Top = headerSpace;
    
                //在页眉部分绘入文字
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
                String headerText = "WORLD TRADE ORGANIZATION, WTO \n THE INTERNATIONAL ORGANIZATION THAT REGULATES INTERNATIONAL TRADE";
                float x = PdfPageSize.A4.Width;
                float y = 0;
                headerSpace.Graphics.DrawString(headerText, font, PdfBrushes.Black, x, y, format);
    
                //在页眉部分绘入图片
                PdfImage headerImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\1.png");
                float width = headerImage.Width / 2;
                float height = headerImage.Height / 3;
                headerSpace.Graphics.DrawImage(headerImage, 0, 0, width, height);
    
            }
        }
    }
    

    页眉添加效果:
    C# 在PDF文档中插入页眉页脚的2种方法

    1.2添加页脚

    【C#】

    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    using System;
    using Spire.Pdf.AutomaticFields;
    
    namespace AddFooter_PDF
    {
        class Program
        {
            static void Main(string[] args)
            {
                //新建一个PdfDocument类对象,添加一页
                PdfDocument doc = new PdfDocument();
                PdfPageBase page = doc.Pages.Add();
    
                //设置margin
                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;
    
                //调用AddFooter()方法添加页脚
                AddFooter(doc, PdfPageSize.A4, margin);
    
                //调用AddPageNumber()方法添加页码
                AddPageNumber(doc, margin);
    
                //保存并打开文档
                doc.SaveToFile("PDF页脚.pdf");
                System.Diagnostics.Process.Start("PDF页脚.pdf");
            }
    
            static void AddFooter(PdfDocument doc, SizeF pageSize, PdfMargins margin)
            {
                //初始化一个PdfPageTemplateElement对象,用于创建页脚
                PdfPageTemplateElement footerSpace = new PdfPageTemplateElement(pageSize.Width, margin.Bottom);
                footerSpace.Foreground = true;
                doc.Template.Bottom = footerSpace;
    
                //在页脚部分绘入文字
                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
                String headerText = "Website : www.wto.org";
                float x = PdfPageSize.A4.Width / 2;
                float y = 0;
                footerSpace.Graphics.DrawString(headerText, font, PdfBrushes.Black, x, y, format);
            }
            static void AddPageNumber(PdfDocument doc, PdfMargins margin)
            {
                //添加页码到页脚部分
                foreach (PdfPageBase page in doc.Pages)
                {
                    PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);
                    int x1 = Convert.ToInt32(page.Canvas.ClientSize.Width / 2);
                    int y1 = Convert.ToInt32(page.Canvas.ClientSize.Height - margin.Bottom + 20);
                    Rectangle bounds = new Rectangle(x1, y1, 20, 20);
                    PdfPageNumberField field = new PdfPageNumberField();
                    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true);
                    field.Font = font;
                    field.StringFormat = format1;
                    field.Brush = PdfBrushes.Black;
                    field.Bounds = bounds;
                    field.Draw(page.Canvas);
                }
    
            }
        }
    }
    

    页脚添加效果:
    C# 在PDF文档中插入页眉页脚的2种方法

    2.给现有PDF文档添加页眉页脚

    【C#】

    using Spire.Pdf;
    using Spire.Pdf.AutomaticFields;
    using Spire.Pdf.Graphics;
    using System;
    using System.Drawing;
    
    namespace PdfHeader
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载一个测试文档
                PdfDocument existingPdf = new PdfDocument();
                existingPdf.LoadFromFile("Test.pdf");
    
                //调用DrawHeader方法在现有文档添加页眉
                DrawHeader(existingPdf);
    
                //调用DrawFooter方法在现有文档添加页脚
                DrawFooter(existingPdf);
    
                //保存并打开文档
                existingPdf.SaveToFile("output.pdf");
                System.Diagnostics.Process.Start("output.pdf");
    
            }
            //在页面上方空白部位绘制页眉
            static void DrawHeader(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float型变量
                float x = 90;
                float y = 20;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制图片
                    PdfImage headerImage = PdfImage.FromFile("logo.png");
                    float width = headerImage.Width / 7;
                    float height = headerImage.Height / 7;
                    doc.Pages[i].Canvas.DrawImage(headerImage, x, y, width, height);
    
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y + height + 2, pageSize.Width - x, y + height + 2);
                }
            }
    
            //在页面下方空白部位绘制页脚
            static void DrawFooter(PdfDocument doc)
            {
                //获取页面大小
                SizeF pageSize = doc.Pages[0].Size;
    
                //声明x,y两个float型变量
                float x = 90;
                float y = pageSize.Height - 72;
    
                for (int i = 0; i < doc.Pages.Count; i++)
                {
                    //在每一页的指定位置绘制横线
                    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);
                    doc.Pages[i].Canvas.DrawLine(pen, x, y, pageSize.Width - x, y);
    
                    //在每一页的指定位置绘制文字
                    y = y + 5;
                    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", 10f, FontStyle.Bold), true);
                    PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
                    String footerText = " Website\n https://g20.org/";
                    doc.Pages[i].Canvas.DrawString(footerText, font, PdfBrushes.Black, x, y, format);                 
                    //在每一页的指定位置当前页码和总页码
                    PdfPageNumberField number = new PdfPageNumberField();
                    PdfPageCountField count = new PdfPageCountField();
                    PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "{0}/{1}", number, count);
                    compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);
                    SizeF size = font.MeasureString(compositeField.Text);
                    compositeField.Bounds = new RectangleF(pageSize.Width - x - size.Width, y, size.Width, size.Height);
                    compositeField.Draw(doc.Pages[i].Canvas);
                }
            }
        }
    }
    

    测试效果:
    C# 在PDF文档中插入页眉页脚的2种方法
    以上是本次关于C#添加PDF页眉页脚的全部内容,两种情况中的示例方法,可以选择参考使用。
    本文完。
    (如需转载,请注明出处)

    转载于:https://blog.51cto.com/eiceblue/2136180

    展开全文
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    8 <br>0018 有效利用Visual Studio 2005附带程序 8 <br>0019 有效使用MSDN帮助 9 <br>0020 如何设置MSDN帮助 9 <br>1.4 其他 10 <br>0021 如何添加项目引用 10 <br>0022 如何添加Web...
  • word使用技巧大全

    热门讨论 2011-03-18 20:37:53
    二十一、一关联两个页码小技巧 46 二十二、多图片文档的快速浏览小技巧 47 二十三、表格小技巧 48 (一) 绘制表格 48 (二) 插入表格 52 二十四、不同页眉小技巧 53 1、如何在同一文档中创建不同的页眉 53 2、如何...
  • VISIO 2007宝典 7/10

    2012-04-02 14:48:18
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 10/10

    2012-04-02 14:59:04
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 9/10

    2012-04-02 14:57:37
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 8/10

    2012-04-02 14:52:51
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 6/10

    2012-04-02 14:43:41
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 5/10

    2012-04-02 14:39:24
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 4/10

    2012-04-02 14:35:28
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 3/10

    2012-04-02 14:31:11
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 2/10

    2012-04-02 14:27:08
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • VISIO 2007宝典 1/10

    2012-04-02 14:23:03
    首先介绍了Visio 2007的基本原理,然后讲解如何整合Visio绘图,如何使用Visio提高办公效率以及利用信息技术使用Visio,接下来介绍如何将Visio应用于建筑与工程,自定义模具、模板和形状,最后部分提供了一些信息和...
  • 6.5.4 Wizard控件添加标题 183 6.5.5 使用向导的导航系统 183 6.5.6 使用Wizard控件的事件 184 6.5.7 使用Wizard控件显示窗体元素 186 6.6 ImageMap服务器控件 189 6.7 小结 191 第7章 验证服务器控件 193 ...
  • PDG文件批量转换PDF

    热门讨论 2011-03-24 14:55:37
    支持通过接口自动生成多级书签、分段页码添加文本、设置PDF的Document Properties。 接口文件可以用于新生成的PDF,也可以用于已有的PDF,包括往已有的PDF上加书签、从PDF取书签等。 软件基于开源代码实现,...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    6.21 补充内容:视图添加映射 196 6.22 小结 199 第7章 图像处理 201 7.1 秘诀:查找和加载图像 201 7.1.1 读取图像数据 201 7.1.2 加载图像文件 203 7.2 秘诀:从iPhone相册访问照片 205 7.2.1 使用图像...
  • iPhone开发秘籍(第2版)--详细书签版

    热门讨论 2012-12-11 13:42:25
    6.21 补充内容:视图添加映射 196 6.22 小结 199 第7章 图像处理 201 7.1 秘诀:查找和加载图像 201 7.1.1 读取图像数据 201 7.1.2 加载图像文件 203 7.2 秘诀:从iPhone相册访问照片 205 7.2.1 使用图像...
  • 让学生读 10 就够比让他们读 50 效果好得多。 降低词汇难度。我尽量把术语用量降到最低,并且在首次使用的时候对每一个都进行定义。 循序渐进。为了避免『陷阱门效应』,我专门把这些最为复杂的部分抽离成一...
  • 页码:1046 版次:1-1 编辑推荐  本书由编程语言先驱者Ivor Horton倾力而著,是国内第一本全面、深入介绍Visual C++ 2005的经典之作! 内容简介  本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最...

空空如也

空空如也

1 2 3 4
收藏数 75
精华内容 30
关键字:

如何给部分页添加页码