HTML转化为pdf文件并合并多个pdf文件
HTML转化为pdf文件并合并多个pdf文件
转化的需要使用到 Wkhtmltopdf 这个工具.
下面代码的介绍;
首先我们要获取到web页面,然后把web页面转化为pdf文件,之后是合并pdf(采用的是合并文件的二进制),之后就完事了.
/*** 生成预览的pdf** @param projectId 项目id*/private void createViewFile(String projectId, String audtingInfoId) throws IOException {final String businessType = "audit-enclosure-total";List<byte[]> files = Lists.newArrayList();// 获取对应的html页面 并转化为pdf文件final String fileName = create(projectId);// 把转为pdf的html的二进制文件存起来files.add(FileUtils.readFileToByteArray(new File(fileName)));final List<Attachment> attachments = attachmentService.selectAttachmentBusinessIds(audtingInfoId);if (attachments != null) {for (Attachment attachment : attachments) {if (StringUtils.endsWithIgnoreCase(attachment.getFileNameReal(), ".pdf") && !StringUtils.equals(businessType, attachment.getBusinessType())) {// 进来的话 将其余的pdf文件的二进制进行合并files.add(attachment.getContent());}}}final String tempFile = FileUtils.getTempDirectory().getPath() + "/" + UUID.randomUUID() + ".pdf";// 把合并后的二进制文件转化为一个pdfPdfUtils.mergePdf(files, tempFile);Attachment attachment = attachmentService.selectAttachment(audtingInfoId, businessType);if (attachment == null) {attachment = new Attachment();}//设置显示名称,否则pdf显示名称不正确attachment.setBusinessId(audtingInfoId);attachment.setContent(FileUtils.readFileToByteArray(new File(tempFile)));attachment.setBusinessType(businessType);if (StringUtils.isBlank(attachment.getId())) {attachmentService.insertAttachment(attachment);} else {attachmentService.updateAttachment(attachment);}}private String create(String projectId) {Html2Pdf html2Pdf = new Html2Pdf();String fileName = UUID.randomUUID().toString().replace("-", "") + ".pdf";String filePath = getFilePath(fileName);html2Pdf.html2pdf(StpsmpGlobal.getCompanyUrl()+"/member/project/auditInfoPreview/" + projectId, filePath);
// System.out.println("http://127.0.0.1:" + StpsmpGlobal.getConfig("server.port") + StpsmpGlobal.getConfig("server.servlet.context-path") + "/project/check/projectReviewCheck/" + projectId+"----------------------"+filePath);return filePath;}/*** 获取文件路径** @param fileName* @return*/private String getFilePath(String fileName) {String tmp = System.getProperty("java.io.tmpdir");return tmp + fileName;}
HTML转化为pdf文件并合并多个pdf文件相关推荐
- JAVA 多种文件转pdf,进行合并,统一pdf文件页面样式
JAVA 将word.execl.ptt.txt.图片等文件转为pdf文件.合并为一个pdf文件,并统一pdf文件页面样式 准备 1.jar包 2.对应的dll文件放到jdk或jre的bin目录下: ...
- Python——dat文件批量合并为同一个csv文件
Python--dat文件批量合并为同一个csv文件 目的:将文件夹ZW下的所有dat文件(含子文件夹)合并,并保存到results.csv中,便于后续使用excel进行处理与分析. 代码: #!/u ...
- java实现多个mav文件拼接合并成一个mav文件
java实现多个mav文件拼接合并成一个mav文件,绝对有效 解决方法: import java.io.File; import java.io.IOException; import java.io ...
- linux合并iso文件,多个ISO文件怎样合并为一个ISO文件(Linux下的操作)
多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行? 解决办法: 1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个 ...
- python学习之路:合并多个excel文件、合并多个pdf文件
**关键点: python中的os模块 python中的pandas中的concat python中的PyPDF2模块** 1.合并多个Excel文件 import os import pandas ...
- Mac下解决复制重复文件时,没有像Windows“保留二者”的选项 - Mac文件夹合并,保留重复文件 - xx(1).jpg
情景 你需要在Mac下复制文件到文件夹"B",但是有部分文件重复了,这时系统没有"保留二者"的选项,只能"跳过","停止" ...
- java 合并txt文件_java合并文本文件并删除文件中重复行
合并两个文本文件,并删除合并后重复的行 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil ...
- 多个excel文件内容合并到一个excel文件的多个sheet的小程序
# -*- coding:utf-8 -*- import xlrd, xlsxwriter # 待合并excelallxls = ["D:\\excelcs\\***.xlsx" ...
- 如何查看文件夹里有几张图片_如何把几张图片合成一个pdf?图片合并为pdf的操作教程...
我在一家公司当美工,平时要接触到很多图片素材,并把它们以pdf格式文件的形式发送给客户查看(以此来摸索出客户想要的图片效果).把几张图片合并成为一个pdf文件,即是将图片格式转换成为pdf格式,这对我 ...
最新文章
- 2020年涨薪26-30%,能实现吗?18%数据科学家是这么期待的
- 安装MikTex Portable
- linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...
- prism4.0——chapter 2:初始化Prism应用
- Android的webview加载本地html、assert内html和收集URL
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
- win7内部版本7601副本不是正版
- 带有示例的Python date strftime()方法
- 【英语学习】【Level 08】U01 Let's Read L3 The classics are always in
- 微信和简书输入框文本选择手柄小bug
- 关于在mysql和oracle中编码对varchar等类型的影响
- String常用方法
- vue开发pc端支付方式(支付宝、微信、银联)
- 浅谈不动产登记中的区块链应用 |《超话区块链》83期回顾
- python和c 情侣网名_qq情侣网名个性网
- 【马红“名师+”研修共同体成员风采】
- Router+Redux学习总结
- 重大利好,区块链技术能保护森林资源?
- 产业分析:股权激励市场实践
- 快速EDAS字体嵌入问题