一般情况,pdf类型的文件在前端预览,都是通过前端插件,或者获取源文件浏览器自带的工具预览,由于项目中,是前后端分离,前端不想使用pdf.js类的插件,预览的要求又是只能看不能下载,所以只能另外想别的办法处理,参照之前openoffice将word/excel能转换成html的功能思路,想到能否将pdf也转换成html进行预览
于是就找到了apache的一个pdfbox的工具包能将pdf转换成图片,于是想到一个实现方案
1.将pdf转换成图片,图片保存在文件服务器,能通过get请求和图片地址获取
2.拼接一段html文件的代码,将每一个图片作为img标签的src插入html代码中
3.最后将这段html代码生成一个html文件,预览时,直接获取这个html就能查看
1.引入包
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.19</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>2.0.19</version>
</dependency>
2.转换代码和生成图片代码以及拼接html生成文件代码
public static String pdf2Html(File file, String savePath, String saveUrl) throws Exception {
String ht