博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何给现有的PDF文件添加页码
阅读量:6489 次
发布时间:2019-06-24

本文共 3549 字,大约阅读时间需要 11 分钟。

如何给现有的PDF文件添加页码

之前我写了如何,有人qq问我怎样在打印时给PDF文件添加页码,的确,给PDF文件添加页码,可以帮助我们区分纸质档的PDF文件页面的先后顺序,方便我们对它的阅读与管理。今天我就分享一下如何给PDF文件添加页码的方法,该方法照例使用的是之前使用的组件并且不需要安装Adobe软件。

代码使用:

第一步:定义一个DrawPageNumber(PdfPageCollection collection, PdfMargins margin)方法,它含有两个参数PdfPageCollection(页面)和PdfMargins(页边距),该方法的作用是在PDF页面底部的中间位置添加页码。

private static void DrawPageNumber(PdfPageCollection collection, PdfMargins margin){    foreach (PdfPageBase page in collection)    {        PdfBrush brush = PdfBrushes.Black;        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Bold), true);        PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);                     int x = Convert.ToInt32(page.Canvas.ClientSize.Width / 2);        int y = Convert.ToInt32(page.Canvas.ClientSize.Height-margin.Bottom);        Rectangle bounds = new Rectangle(x, y, 50, 20);               PdfPageNumberField field = new PdfPageNumberField();        field.Font = font;        field.Brush = brush;        field.StringFormat = format;        field.Bounds = bounds;        field.Draw(page.Canvas);    }    }

 

第二步:加载PDF文件。

PdfDocument doc = new PdfDocument();doc.LoadFromFile(@"各种点心的做法副本.pdf ");

 

第三步:设置PDF页边距。

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(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);margin.Right = margin.Left;

 

第四步:调用DrawPageNumber()方法,将页码添加到对应的PDF页面。

DrawPageNumber(doc.Pages, margin);

 

第五步:保存文件。

doc.SaveToFile("添加页码.pdf", FileFormat.PDF);

 

效果图:

添加页码之前:

                     

添加页码之后:

完整代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Spire.Pdf;using Spire.Pdf.Graphics;using Spire.Pdf.Widget;using System.Drawing;using Spire.Pdf.AutomaticFields;namespace Add_Page_Numbers_to_Existing_PDF_Document{    class Program    {        static void Main(string[] args)        {            PdfDocument doc = new PdfDocument();            doc.LoadFromFile(@"各种点心的做法副本.pdf");            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(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);            margin.Right = margin.Left;            DrawPageNumber(doc.Pages, margin);            doc.SaveToFile("添加页码.pdf", FileFormat.PDF);        }        private static void DrawPageNumber(PdfPageCollection collection, PdfMargins margin)        {            foreach (PdfPageBase page in collection)            {                PdfBrush brush = PdfBrushes.Black;                PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Bold), true);                PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);                             int x = Convert.ToInt32(page.Canvas.ClientSize.Width / 2);                int y = Convert.ToInt32(page.Canvas.ClientSize.Height-margin.Bottom);                Rectangle bounds = new Rectangle(x, y, 50, 20);                       PdfPageNumberField field = new PdfPageNumberField();                field.Font = font;                field.Brush = brush;                field.StringFormat = format;                field.Bounds = bounds;                field.Draw(page.Canvas);            }              }    }}

 

转载地址:http://yfouo.baihongyu.com/

你可能感兴趣的文章
《 Python树莓派编程》——3.4 利用Python进行编程
查看>>
从损坏的 Linux EFI 安装中恢复
查看>>
Git Rebase教程: 用Git Rebase让时光倒流
查看>>
柏林纪行(上):整体感受
查看>>
《Python数据科学指南》——1.14 返回一个函数
查看>>
《Python数据分析》一1.7 学习手册页
查看>>
Centos7 下建立 Docker 桥接网络
查看>>
《Hack与HHVM权威指南》——1.6 类型推理
查看>>
《CCNA学习指南:数据中心(640-911)》——导读
查看>>
《精通 ASP.NET MVC 5》----1.3 ASP.NET MVC的关键优点
查看>>
《JavaScript框架设计》——1.5 主流框架引入的机制——domReady
查看>>
《正则表达式经典实例(第2版)》——2.3 匹配多个字符之一
查看>>
深入实践Spring Boot1.3.1 Maven依赖管理
查看>>
API网关的iOS SDK已经支持 IPV6
查看>>
《iOS 8开发指南(第2版)》——第1章,第1.4节使用Xcode开发环境
查看>>
【云栖精选】《云栖精选阿里巴巴技术实战2016年刊》重磅发布
查看>>
Javascript:谈谈JS的全局变量跟局部变量
查看>>
MonoDevelop的app.config问题
查看>>
if continue 语句
查看>>
When you are old (当你老了)
查看>>