既然是要导出PDF首先肯定是导出PDF的代码。

  代码如下:

1 Document document1 = new Document();//创建一个Document 实例
2             PdfWriter.GetInstance(document1, new FileStream(@"C:\001.pdf", FileMode.Create));//创建一个PDF
3             document1.Open();//打开页面
4             Random ran = new Random();//定义一个随机数 模拟不确定页数
5             for (int i = 0; i < ran.Next(30, 100); i++)6 {7                 document1.SetPageSize(PageSize.A4);//设置页面大小
8                 document1.NewPage();//新开一页
9                 document1.Add(new Paragraph("PDF1, PDF1, PDF1, PDF1, PDF1"));//增加点东西
10 }11             document1.Close();

此时一个001.pdf已经新建完毕,接下来开始给这个pdf增加页码。
  代码如下

1  //创建一个PdfReader对象
2 PdfReader reader = new PdfReader(@"C:\001.pdf");3   //获得文档页数
4 int n =reader.NumberOfPages;5 //创建一个文档变量
6 Document document = newDocument();7 //创建该文档
8 PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\002.pdf", FileMode.Create));9 //打开文档
10 document.Open();11  //添加内容
12 PdfContentByte cb =writer.DirectContent;13  for (int i = 0; i < reader.NumberOfPages; i++)14 {15                     //获取大小
16                     Rectangle psize = reader.GetPageSize(i + 1);17                     float width =psize.Width;18                     float height =psize.Height;19                     //设置页面大小
20 document.SetPageSize(psize);21                     //新开一页
22 document.NewPage();23                     //添加内容
24                     PdfImportedPage page1 = writer.GetImportedPage(reader, i + 1);25                     cb.AddTemplate(page1, 0, 0);26                     cb.MoveTo(0, height);27 cb.Stroke();28 cb.MoveTo(width, height);29 cb.Stroke();30                     //写入页码
31                     BaseFont bf =BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);32 cb.BeginText();33                     cb.SetFontAndSize(bf, 14);34                     cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, string.Format("{0} of {1}", (i + 1).ToString(), n.ToString()), width / 2, 18, 0);35 cb.EndText();36 }37                 //关闭文档
38 document.Close();39                 reader.Close();

此时已经新建了一个新的002.pdf,内容完全一致,唯独多了页码(例如:1 of 35);接下来只要将原来的001.pdf删除并且将002.pdf修改为001.pdf就可以了。小弟初出茅庐有什么不对的地方,再看这篇随笔的人可以指出。

转载于:https://www.cnblogs.com/MageChen/p/5753464.html

当PDF页面总数不确定的时候导出PDF增加页码(i of n)相关推荐

  1. python 删除pdf页面_使用Python批量删除扫描PDF中的空白页

    对于经常看扫描PDF资料的人来说,经常会碰到如下问题: PDF缩略图 因为一些格式转换的原因,一些空白页时不时的出现,而且规律不定,一会是偶数页码一会是奇数页码,逐个选中删除的话,对于几百页的文档,非 ...

  2. java 设置pdf页面大小_通过Java实现对PDF页面的详细设置

    前言 下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度 ...

  3. java pdf文件保存_java根据模板文件导出pdf

    原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...

  4. python 删除pdf页面_使用python从新生成的pdf文件中删除空白页

    使用下面的代码,我试图将图片从目录粘贴到PDF文件中.代码已经在工作,生成我的PDF几乎如我所愿.在 唯一的问题是它总是在图片之间添加空白页,我不知道为什么. 如果我执行代码,PDF将以空白页开始,然 ...

  5. python 删除pdf页面_python 有什么库可以删除pdf 里面内容

    python 有什么库可以直接删除pdf 里面的一些元素吗?. 比如我用Py2pdf 打印后的元素是 {'/Parent': IndirectObject(1, 0), '/Contents': In ...

  6. java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案

    本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...

  7. 2022年最简单旋转PDF页面的方法推荐

    有时候,我们打开一个PDF文件就会发现,有些PDF页面会被颠倒或错误旋转,会影响我们阅读,那遇到这种情况,要如何将其旋转到正确的位置?今天我们就借助金闪PDF编辑器给大家推荐几个简单的旋转PDF页面的 ...

  8. 使用PDF编辑器进行PDF合并与PDF页面提取

    随着PDF文档在工作学习上越来越受欢迎,与PDF相关的操作大家都必须懂得一些,比如说简单的PDF合并与PDF页面提取.PDF合并能够将零散地页面汇总在一起,方便查看,也方便统一传输:而将PDF文档里需 ...

  9. PDF怎么删除不要的页面?免费删除PDF页面教程来了

    PDF怎么删除不要的页面?免费删除PDF页面的教程来了,还不知道怎么删除PDF页面的赶紧看过来,无论你是手机用户还是电脑用户,都可以轻松快速免费删除多余的PDF页面,只需一个"金闪PDF编辑 ...

最新文章

  1. 前端技术分享:锥形渐变conic-gradient你了解多少?
  2. 如何正确修补系统漏洞?
  3. NetBeans 8.0的五个新性能提示
  4. Python 学习过程问题记录
  5. 转载:ADO.NET Entity Framework 试水系列索引(2008/9/9更新,本系列结束)
  6. PTA-1021—— Deepest Root(最后两组数据错误)
  7. 高德地图画带箭头的线_模具装配图画成这样,那才真的叫标准!
  8. fighting小银考呀考不过四级
  9. MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual..........
  10. WPF入门教程系列二十——ListView示例(二)
  11. 谈谈Mysql主从同步延迟分析及解决方案
  12. ant压缩html,ant+yuicompressor压缩js/css
  13. 马未都说收藏:陶瓷篇(2)三国两晋南北朝唐代时期的瓷器
  14. java 自动创建html网页超链接
  15. python程序只能在安装了python环境的计算机上_Python程序只能在安装了Python环境的计算机上以源代码形式运行。...
  16. 【软件工程】实验九 建立动态模型--自行车租赁管理系统
  17. 算法实践——数独的基本解法
  18. 360安全卫士防黑加固关闭了Telnet远程连接服务,如何开启?
  19. 麒麟子Cocos Creator 3D研究笔记十一:实用Shader之单张纹理实现武器动态发光
  20. Latex 表格文字居中(垂直和水平居中)

热门文章

  1. 2.12日递推专题第一题
  2. 阿里巴巴为什么主推HSF?比Dubbo有哪些优势?
  3. BZOJ 2342: 【SHOI2011】 双倍回文
  4. Windows Phone(三)WP7版 记账本 开发(使用SQLite数据库)
  5. 推荐10款非常有用的 Ajax 插件
  6. SQL Server 2005 Compact Edition 程序设计与性能优化
  7. 2018,10,19模拟赛
  8. Powershell实战之管道参数绑定
  9. Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析
  10. C#编程(三十五)----------foreach和yield