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文件相关推荐

  1. JAVA 多种文件转pdf,进行合并,统一pdf文件页面样式

    JAVA 将word.execl.ptt.txt.图片等文件转为pdf文件.合并为一个pdf文件,并统一pdf文件页面样式 准备 1.jar包 2.对应的dll文件放到jdk或jre的bin目录下: ...

  2. Python——dat文件批量合并为同一个csv文件

    Python--dat文件批量合并为同一个csv文件 目的:将文件夹ZW下的所有dat文件(含子文件夹)合并,并保存到results.csv中,便于后续使用excel进行处理与分析. 代码: #!/u ...

  3. java实现多个mav文件拼接合并成一个mav文件

    java实现多个mav文件拼接合并成一个mav文件,绝对有效 解决方法: import java.io.File; import java.io.IOException; import java.io ...

  4. linux合并iso文件,多个ISO文件怎样合并为一个ISO文件(Linux下的操作)

    多个ISO文件怎样合并为一个ISO文件?我下载了几张比较小的ISO文件,想做进一张光盘里去,还要在光盘启动下运行? 解决办法: 1. 首先你必須要有一个很大的磁盘空间 大概要3.5g是空闲的 建立一个 ...

  5. python学习之路:合并多个excel文件、合并多个pdf文件

    **关键点: python中的os模块 python中的pandas中的concat python中的PyPDF2模块** 1.合并多个Excel文件 import os import pandas ...

  6. Mac下解决复制重复文件时,没有像Windows“保留二者”的选项 - Mac文件夹合并,保留重复文件 - xx(1).jpg

    情景 你需要在Mac下复制文件到文件夹"B",但是有部分文件重复了,这时系统没有"保留二者"的选项,只能"跳过","停止" ...

  7. java 合并txt文件_java合并文本文件并删除文件中重复行

    合并两个文本文件,并删除合并后重复的行 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil ...

  8. 多个excel文件内容合并到一个excel文件的多个sheet的小程序

    # -*- coding:utf-8 -*- import xlrd, xlsxwriter # 待合并excelallxls = ["D:\\excelcs\\***.xlsx" ...

  9. 如何查看文件夹里有几张图片_如何把几张图片合成一个pdf?图片合并为pdf的操作教程...

    我在一家公司当美工,平时要接触到很多图片素材,并把它们以pdf格式文件的形式发送给客户查看(以此来摸索出客户想要的图片效果).把几张图片合并成为一个pdf文件,即是将图片格式转换成为pdf格式,这对我 ...

最新文章

  1. 2020年涨薪26-30%,能实现吗?18%数据科学家是这么期待的
  2. 安装MikTex Portable
  3. linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...
  4. prism4.0——chapter 2:初始化Prism应用
  5. Android的webview加载本地html、assert内html和收集URL
  6. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
  7. win7内部版本7601副本不是正版
  8. 带有示例的Python date strftime()方法
  9. 【英语学习】【Level 08】U01 Let's Read L3 The classics are always in
  10. 微信和简书输入框文本选择手柄小bug
  11. 关于在mysql和oracle中编码对varchar等类型的影响
  12. String常用方法
  13. vue开发pc端支付方式(支付宝、微信、银联)
  14. 浅谈不动产登记中的区块链应用 |《超话区块链》83期回顾
  15. python和c 情侣网名_qq情侣网名个性网
  16. 【马红“名师+”研修共同体成员风采】
  17. Router+Redux学习总结
  18. 重大利好,区块链技术能保护森林资源?
  19. 产业分析:股权激励市场实践
  20. 快速EDAS字体嵌入问题

热门文章

  1. MySQL 启动失败的常见原因---发表到爱可生开源社区
  2. 高仿网易云音乐(vue实战项目)
  3. monit:配置/SIGUSR1
  4. 手把手教你们Python配置OpenCV环境,小白看一遍就会了☀️《❤️记得收藏❤️》
  5. OnePlus 7 OxygenOS 10.3.8刷入Kali-NetHunter-2022.1成功案例
  6. Oracle 全角字符和半角字符转换
  7. 少儿java编程笔试题库_java笔试之编程题库.doc
  8. IDEA 安装Git
  9. 前缀表达式后缀表达式
  10. Python实现跳台阶(递归)