操作 PDF 文件的常用JAR包
操作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电子加签写过一篇专栏:
上一篇: 最厚不超7毫米 市售超薄时尚手机盘点
推荐阅读
-
操作 PDF 文件的常用JAR包
-
常用的maven仓库-------------jar包的依赖添加
-
PHP zip压缩包操作类ZipArchive,解压文件、ZIPARCHIVE打包压缩文件夹、Zip压缩上传的多文件多图片
-
TCPDF 6.0.036 发布,PHP 的 PDF 操作包_PHP教程
-
Python常用的文件及文件路径、目录操作方法汇总介绍
-
CSV文件导入mysql PHP处理CSV表格文件的常用操作方法总结
-
java实现pdf文件截图的方法【附PDFRenderer.jar下载】
-
Python中shutil模块的常用文件操作函数用法示例
-
java实现pdf文件截图的方法【附PDFRenderer.jar下载】
-
Android修改jar文件包名的方法分享