操作 PDF 文件的常用JAR包
共 1647字,需浏览 4分钟
· 2020-12-04
![](https://filescdn.proginn.com/57ea0d942fec311e1c1eddc04ac1ce0f/d62cfe49794fa7428423ad44c05c3c9b.webp)
点击上方「蓝字」关注我们
![](https://filescdn.proginn.com/d613d330791d514e225571cd10aa3f5e/9c104ca4c8b51acad71822ed22eb1d13.webp)
操作PDF在很多业务场景都要用到,例如电子发票,电子处方笺。为什么需要使用PDF呢?主要是因为可以使用RSA加密算法对PDF进行电子加签,只要经过电子加签的PDF文件,就会在PDF文件产生电子签章;经过加签的PDF是不允许修改的,如果加签后,再次对内容就行修改的话,就会显示PDF文件失效。这样的话就能验证该PDF是不是合法的。以下盘点一下常用的PDF工具JAR包。
0x01:iText 5
iText 5是最早一个提供对PDF进行操作的JAR包,不过目前该JAR已经不再进行后续开发。可以从官网看到如下一段话:
官网
https://kb.itextpdf.com/home/it5kb
大概的意思是iText 5是iText之前的重要版本,但是iText 5已经停止开发,不再进行后续开发,请把你的项目切换到iText 7。虽然该版本的iText不再开发,但是使用该版本的iText JAR已经可以满足项目的80% ~90%的需求的,主要需要引入itextpdf-x.x.x.jar 和 itext-asian-x.x.x.jar 这两个JAR包。
仓库地址如下:
https://github.com/itext/itextpdf
0x02:iText 7
iText 7是最新的,也是最强的PDF处理工具包。可用于生成PDF、编程PDF
数字签名等。iText 7 与iText 5是两个不同的体系。
官网
https://kb.itextpdf.com/home/it7kb
iText 7体系非常强大,记得有个功能可以把HTML页面直接转成PDF文档。其他功能有待你去慢慢发现。仓库如下
https://github.com/itext/itext7
备注:iText 5 与 iText 7都是收费的,使用时需要购买版权。虽然收费,但是值得拥有。因为之前小编在做电子处方笺时,对比使用了 iText 和 Apache PDFBox(接下来要介绍的一款JAR包)。iText可以在PDF文件中绘制矢量图,但是Apache PDFBox做不到(可能我没发现方法)。
0x03:Apache PDFBox
Apache PDFBox库是用于处理PDF文档的开源Java工具。该项目允许创建新的PDF文档,操纵现有文档以及从文档中提取内容的功能。Apache PDFBox还提供了几个命令行实用程序。可以说Apache出品必是精品。
官网
https://pdfbox.apache.org/
下面是一个仓库的镜像
https://github.com/apache/pdfbox
0x04:OpenPDF
OpenPDF是一个Java库,使用LGPL和MPL开源许可证。可以拥有创建和编辑PDF文件。OpenPDF是iText的LGPL / MPL开源后继产品,它基于iText 4 svn标签的一个分支。
仓库
https://github.com/LibrePDF/OpenPDF
0x05:x-easypdf
x-easypdf基于pdfbox构建而来,极大降低使用门槛,以组件化的形式进行pdf的构建。简单易用,仅需一行代码,便可完成pdf的操作。是国人开源的一个基于Apache PDFBox的JAR包。
仓库
https://gitee.com/xsxgit/x-easypdf
总结:操作PDF的JAR主要分成两类,分别是iText系列和Apache PDFBox系列,在之前的项目中使用PDF操作工具遇到不少的坑。特别给PDF进行电子加签的时候,遇到的坑,不过都解决了;还基于PDF电子加签写过一篇专栏:
![](https://filescdn.proginn.com/30d8397ebf1ce761f1b476505f02b05b/25fb233bb3c9bebecd6b40ed3837b680.webp)
扫码二维码
获取更多精彩
Java乐园
![](https://filescdn.proginn.com/fdf324b0708ef13d6ad99fa2da358d61/e062d09263371e40331097c79d2dd4db.webp)