当PDF页面总数不确定的时候导出PDF增加页码(i of n)
既然是要导出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)相关推荐
- python 删除pdf页面_使用Python批量删除扫描PDF中的空白页
对于经常看扫描PDF资料的人来说,经常会碰到如下问题: PDF缩略图 因为一些格式转换的原因,一些空白页时不时的出现,而且规律不定,一会是偶数页码一会是奇数页码,逐个选中删除的话,对于几百页的文档,非 ...
- java 设置pdf页面大小_通过Java实现对PDF页面的详细设置
前言 下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小.页边距.纸张方向.页面旋转等.这里有如下多种页面大小尺寸可供选择: 同时,设置文档内容旋转时,可支持如下角度 ...
- java pdf文件保存_java根据模板文件导出pdf
原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...
- python 删除pdf页面_使用python从新生成的pdf文件中删除空白页
使用下面的代码,我试图将图片从目录粘贴到PDF文件中.代码已经在工作,生成我的PDF几乎如我所愿.在 唯一的问题是它总是在图片之间添加空白页,我不知道为什么. 如果我执行代码,PDF将以空白页开始,然 ...
- python 删除pdf页面_python 有什么库可以删除pdf 里面内容
python 有什么库可以直接删除pdf 里面的一些元素吗?. 比如我用Py2pdf 打印后的元素是 {'/Parent': IndirectObject(1, 0), '/Contents': In ...
- java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案
本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...
- 2022年最简单旋转PDF页面的方法推荐
有时候,我们打开一个PDF文件就会发现,有些PDF页面会被颠倒或错误旋转,会影响我们阅读,那遇到这种情况,要如何将其旋转到正确的位置?今天我们就借助金闪PDF编辑器给大家推荐几个简单的旋转PDF页面的 ...
- 使用PDF编辑器进行PDF合并与PDF页面提取
随着PDF文档在工作学习上越来越受欢迎,与PDF相关的操作大家都必须懂得一些,比如说简单的PDF合并与PDF页面提取.PDF合并能够将零散地页面汇总在一起,方便查看,也方便统一传输:而将PDF文档里需 ...
- PDF怎么删除不要的页面?免费删除PDF页面教程来了
PDF怎么删除不要的页面?免费删除PDF页面的教程来了,还不知道怎么删除PDF页面的赶紧看过来,无论你是手机用户还是电脑用户,都可以轻松快速免费删除多余的PDF页面,只需一个"金闪PDF编辑 ...
最新文章
- 前端技术分享:锥形渐变conic-gradient你了解多少?
- 如何正确修补系统漏洞?
- NetBeans 8.0的五个新性能提示
- Python 学习过程问题记录
- 转载:ADO.NET Entity Framework 试水系列索引(2008/9/9更新,本系列结束)
- PTA-1021—— Deepest Root(最后两组数据错误)
- 高德地图画带箭头的线_模具装配图画成这样,那才真的叫标准!
- fighting小银考呀考不过四级
- MySql 建表出现的问题:[ERR] 1064 - You have an error in your SQL syntax; check the manual..........
- WPF入门教程系列二十——ListView示例(二)
- 谈谈Mysql主从同步延迟分析及解决方案
- ant压缩html,ant+yuicompressor压缩js/css
- 马未都说收藏:陶瓷篇(2)三国两晋南北朝唐代时期的瓷器
- java 自动创建html网页超链接
- python程序只能在安装了python环境的计算机上_Python程序只能在安装了Python环境的计算机上以源代码形式运行。...
- 【软件工程】实验九 建立动态模型--自行车租赁管理系统
- 算法实践——数独的基本解法
- 360安全卫士防黑加固关闭了Telnet远程连接服务,如何开启?
- 麒麟子Cocos Creator 3D研究笔记十一:实用Shader之单张纹理实现武器动态发光
- Latex 表格文字居中(垂直和水平居中)
热门文章
- 2.12日递推专题第一题
- 阿里巴巴为什么主推HSF?比Dubbo有哪些优势?
- BZOJ 2342: 【SHOI2011】 双倍回文
- Windows Phone(三)WP7版 记账本 开发(使用SQLite数据库)
- 推荐10款非常有用的 Ajax 插件
- SQL Server 2005 Compact Edition 程序设计与性能优化
- 2018,10,19模拟赛
- Powershell实战之管道参数绑定
- Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析
- C#编程(三十五)----------foreach和yield