word换pdf并且自动生成目录
目录
利用aspose-word for java和aspose-pdf for java完成word转pdf并且生成目录
1. jacob
2. aspose
2.1 利用aspose-word for java将word转为pdf
2.2 利用aspose-word for java提取word中的标题
2.3 利用aspose-pdf for java插入pdf书签
利用aspose-word for java和aspose-pdf for java完成word转pdf并且生成目录
最近开发的项目涉及到word转pdf,在做了调研之后,发现了几款比较不错的工具:
1. jacob
这个解决方案太依赖于windows的office了,所以自己也只是写了个demo,没有深入研究。
2. aspose
aspose比传统的poi操作word简单了不少,更重要的是支持了doc和docx两种格式
2.1 利用aspose-word for java将word转为pdf
以下代码轻轻松松就可以实现:
// wordPath为word的绝对路径
com.aspose.words.Document doc = new com.aspose.words.Document(wordPath);
// word转pdf,pdfPath为pdf要保存的绝对路径
doc.save(pdfPath, SaveFormat.PDF);
本来以为做完这个功能已经可以摸鱼了,结果下一个功能又来了。(产品问:为什么转换的pdf没有目录呢?)
在苦苦研究了差不多一个多月的时间,终于在公司大神的帮助下,今天彻底完成了这个功能。
2.2 利用aspose-word for java提取word中的标题
com.aspose.words.Document originDoc = new com.aspose.words.Document("D:\\test\\1.doc");
// 后面需要用这个对象去获取当前段落所在的页码
LayoutCollector layoutCollector = new LayoutCollector(originDoc);
// 需要获取所有的section,要不然部分word提取目录不完整
Section[] sections = originDoc.getSections().toArray();
// 获取所有的段落
List<Paragraph> paragraphs = new ArrayList<>();
for (Section s:sections) {paragraphs.addAll(Arrays.asList(s.getBody().getParagraphs().toArray()));}
// 获取标题的关键代码。标题对应的值为0-8,提取自己所需标题即可
p.getParagraphFormat().getOutlineLevel();
// 获取页码
layoutCollector.getEndPageIndex(p);
// 获取标题名称
p.getListLabel().getLabelString() + " " + p.getText();
以上只是部分代码,需要源码的可以私信我。
2.3 利用aspose-pdf for java插入pdf书签
Document pdfDoc = new Document(filePath);
OutlineCollection outlineCollection = pdfDoc.getOutlines();
for (HeadingNode node :list) {OutlineItemCollection outLineItem = new OutlineItemCollection(outlineCollection);outLineItem.setTitle(node.getHeaderName());outLineItem.setAction(new GoToAction(node.getHeaderPage()));addPdfBKRecursive(node, outlineCollection, outLineItem);outlineCollection.add(outLineItem);
}
pdfDoc.save();
所以,整个功能的实现逻辑应该是:word转为pdf,获取原word的目录大纲,根据word获取的目录大纲添加pdf书签。在获取word目录和添加pdf书签都用到了递归。需要源码的可以私信我。
最后附一张自己完成功能的战果图:
原word的目录
转换为pdf书签之后的效果
每一个功能在没有实现出来之前是那样不切实际,实现出来之后自身又成长不少,所以,不用急于去下结论。
word换pdf并且自动生成目录相关推荐
- 怎么用计算机做目录,word怎么生成目录,教您Word文档如何自动生成目录
word是我们常用的文字编辑器,学会一些word基本操作,使办公更加方便.我们平时写文章或写论文的时候为了方便,文章生成一个目录在查找的时候就很容易找到,如何生成目录呢?下面,小编给大家介绍Word文 ...
- Word 2010文档自动生成目录和某页插入页码
一.Word 2010文档自动生成目录 关于Word文档自动生成目录一直是我身边同学们最为难的地方,尤其是毕业论文,经常因为目录问题,被要求修改,而且每次修改完正文后,目录的内容和页码可能都会发生变化 ...
- Word排版如何快速自动生成目录,简单实用,一看就懂!
都说 "人靠衣装马靠鞍",的确如此,不光是人需要收拾的干净利落,我们的文章排版也是如此,只有当你的界面排版干净整洁时,才有让人阅读下去的欲望.那么现在问题来了,如何在排版中快速自动 ...
- php自动生成word目录,word文档怎么自动生成目录章节
方法:1.单击"开始"菜单区域的文档样式选项,编辑标题样式:如标题1.标题2等等.2.单击"开始"-样式"-右下角的"扩展"按钮. ...
- Word文档如何自动生成目录
前言 进度进行到了软工文档,参考文档上的目录既正规又好看,让我忍不住想研究一下. 内容 其实我个人觉得Word目录生成方式和CSDN的目录生成方式有很多相似之处,接下来咱们就看看具体步骤. 步骤一: ...
- word生成html包含目录,word2007自动生成目录,目录里包含有正文,怎么办
word2007自动生成目录,目录里包含有正文,怎么办 相关说明: 请看,显示级别那项,1级,2级,3级文本显示的都没有正文的,可是目录生成出来就是有 大刚视图中确认大刚级别为"正文文本&q ...
- Typora导出word文档自动生成目录
一.关键步骤 Typora导出word文档 用WPS打开word文档,自动生成目录 在空白处,插入编号,插入编号后删除这条编号 更新目录,更新整个目录 完成目录自动生成
- word自动生成目录 页码不能右对齐问题
在用word自动生成目录时,产生的目录总是不能右对齐,如下图 这时可以再生成目录对话框中修改相关选项来更正这个错误. 在引用->目录->插入目录的对话框中,<常规>--< ...
- PDF文档一键自动生成目录和书签
在工作中经常会遇到编写文档的时候,当我们在word编写完文档后,一般可以自动生成一个目录.为了方便阅读和保护文档不被破坏,一般发送给别人的时候,需要把word文档转换成PDF格式.但是word文档 ...
最新文章
- springmvc + jquery 错误.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
- 算法复习之坐标离散化
- oracle存储过程无效字符_Oracle存储过程基础+ 错误代码
- c# cookie帮助类
- IDEA导入Eclipse项目
- GitHub上Java的Bloom Bloom实现
- Google Protocol Buffer
- mysql常用语句1
- matlab幂指数函数图像,matlab画指数函数曲线
- 【181012】VC++ 中国象棋人机对弈程序源代码
- 微信渐变国旗头像来了!一键生成
- [iOS]苹果开发证书 一个证书多人开发 注意项
- 植树节推文如何排版?—135植树节样式上新
- 史上最全无线通信频率分配表
- Vue3+Vite+TS后台项目 ~ 10.商品管理
- 深信服实习面经11_02
- (Samsung)Netsol SRAM,Novachips SATA3 SSD Controller,Zywyn 3V RS232,PLX
- Java实现字符串反转的几种方法
- ARM-(一)定时器:PWM定时器,看门狗WTD定时器
- app android 升级提示,app版本升级原生弹框和进度提示(包含wgt升级)
热门文章
- C语言学习———函数
- 真相 | 投机者根本不是用户!区块链市场因他们起高楼,因他们崩到底!
- DDR突然初始化失败 Debug记录
- MAC下安装ElasticSearch(官网下载安装包)
- selenium 火狐下载弹框去除
- 世界第一台计算机是多少位,世界上第一台计算机的字长是多少位?
- python中3or5-python3 中 and 和 or 运算规律
- crash report
- 6-27 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100 分)
- 2023年武汉大学艺术专硕考研上岸前辈初复试备考经验指导