当前位置:首页 > 编程技术 > 正文内容

【说站】java实现PDF加密、分割和生成封面图操作

yc8882年前 (2022-07-26)编程技术191

由于某些不可抗力原因,公司不允许使用itext系列的jar包,因此系统中使用的相关jar得替换成开源的。经比较和尝试考虑使用org.apache.pdfbox来替换,同时修改系统中原有的方法,发现比itext系列稍显简洁一点,记录如下:

java实现PDF加密、分割和生成封面图操作

加密文件

/** * 加密文件测试 * @from fhadmin.cn */@Testpublic void encryptTest(){try {String filePath = "D:\\test\\像李开复一样思考人生.pdf";String password = "1234";PDDocument document = PDDocument.load(new File(filePath));StandardProtectionPolicy spp = new StandardProtectionPolicy(password, password,new AccessPermission());document.protect(spp);String newFilePath = "D:\\test\\像李开复一样思考人生2.pdf";document.save(newFilePath);document.close();} catch (IOException e) {e.printStackTrace();}}

切割文件

/** * 切割文件测试 * @from fhadmin.cn */@Testpublic void extractTest(){try {String newFilePath = "D:\\test\\像李开复一样思考人生2.pdf";String password = "1234";PDDocument document = PDDocument.load(new File(newFilePath), password);//带密码读取//从第一页截取到第二页PageExtractor pageExtractor = new PageExtractor(document, 1, 2);PDDocument extract = pageExtractor.extract();extract.save("D:\\test\\像李开复一样思考人生free.pdf");extract.close();document.close();} catch (IOException e) {e.printStackTrace();}}

生成封面图

/** * 切割文件测试 * @from fhadmin.cn */@Testpublic void createCoverPicTest(){try {String pdfPath = "D:\\test\\像李开复一样思考人生.pdf";File file = new File(pdfPath);//order目录String orderPath = file.getParent();//转换后的img目录String bookName = file.getName().substring(0,file.getName().lastIndexOf("."));String imgPath = orderPath + File.separator +bookName+".png";log.debug("pdf封面图生成成功:{}", imgPath);PDDocument pdDocument = PDDocument.load(new File(pdfPath));PDFRenderer renderer = new PDFRenderer(pdDocument);/* 第二位参数越大转换后越清晰,相对转换速度越慢 */BufferedImage image = renderer.renderImageWithDPI(0, 150);ImageIO.write(image, "png", new File(imgPath));} catch (IOException e) {e.printStackTrace();}}

总结一下,现在的工具都比较丰富了,不需要自己去造轮子,

step-1 去maven仓库检索同类型的包,比较一下热度和使用人数step-2 下载对应包的source源代码,看一下框架整体结构,里面都有哪些package和类,不知道类是干什么的,可以看一下类上面的注释,一般都是比较简单的英文step-3 动手写单元测试进行验证。


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/7443.html

标签: java
分享给朋友:

“【说站】java实现PDF加密、分割和生成封面图操作” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...