Html分两种情况转换为Pdf:

第一种:html的文件
第二钟:html格式的字符串
我们先来讲一下第一种情况:
1.市面上有很多的html转pdf的方法,但是不是受限于中文的限制就是受限于css样式的丢失或者是对html的要求太严格。
所以我在做这个教程的时候找到了一个非常厉害的一个组件首先看一下他的官网:
e-iceblue
他有商业版本和免费的版本,商业版本没购买之前是有水印的,但是可以转换10页,免费版本是没有水印的,但是只支持转换前三页。结合教程使用,我们使用他的免费版本,首先第一步导入他的jar包:

     <dependency><groupId> e-iceblue </groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</version></dependency>

但是中央仓库是没有这个jar包的,所以我们还需要加一个他的jar包仓库地址:

    <repositories><repository><id>com.e-iceblue</id><url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository></repositories>

2.第二步我们使用一下方式读取html文件的内容:

public class HtmlToPDFUtil {public static void main(String[] args) throws IOException{String inputHtml = "C:\\InputHtml.txt";//新建Document对象Document doc = new Document();//添加sectionSection sec = doc.addSection();String htmlText = readTextFromFile(inputHtml);//添加段落并写入HTML文本sec.addParagraph().appendHTML(htmlText);//将文档另存为PDFdoc.saveToFile("C:\\HTMLstringToPDF.pdf", FileFormat.PDF);doc.dispose();}public static String readTextFromFile(String fileName) throws IOException {StringBuffer sb = new StringBuffer();BufferedReader br = new BufferedReader(new FileReader(fileName));String content;while ((content = br.readLine()) != null) {sb.append(content);}return sb.toString();}
}

这个时候就会在c盘目录下生成InputHtml.txt对应的HTMLstringToPDF.pdf文件
第二种方法,html为文本格式的情况:
1.导入上的jar包之后之间将html的文本内容赋值给htmlTest

 public static void main(String[] args) throws IOException{//新建Document对象Document doc = new Document();//添加sectionSection sec = doc.addSection();String htmlText = " <tr>\n" +"        <td colspan=\"8\">\n" +"          <div class=\"yiban\">\n" +"            <span class=\"jiachu\">联系电话:<span>18888888888</span></span>\n" +"          </div>\n" +"          <div class=\"yiban\">\n" +"            <span class=\"jiachu\">送货单号:</span><span>1567894</span>\n" +"          </div>\n" +"        </td>\n" +"      </tr>";//添加段落并写入HTML文本sec.addParagraph().appendHTML(htmlText);//将文档另存为PDFdoc.saveToFile("C:\\HTMLstringToPDF.pdf", FileFormat.PDF);doc.dispose();}

这个情况也是一样的

拓展:将生成的pdf文件返回给前端以供下载

需要一下的代码段,直接贴出来供大家参考:

 public static void downloadPdf(String fileName, String path) {ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletResponse response = requestAttributes.getResponse();response.setContentType("application/force-download");try {response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO8859-1"));} catch (Exception e) {e.printStackTrace();}File file = new File(path);InputStream is = null;ServletOutputStream os = null;try {is = new FileInputStream(file);os = response.getOutputStream();int b;while ((b = is.read()) != -1) {os.write(b);}} catch (FileNotFoundException e) {ExceptionUtils.logError(e);} catch (IOException e) {ExceptionUtils.logError(e);} finally {try {if (null != os) {os.close();}if (null != is) {is.close();}} catch (IOException e) {ExceptionUtils.logError(e);}}}

使用该方法:

HtmlToPDFUtil.downloadPdf(fileName,tmplPath+fileName);

这样就会将pdf文件作为response返回给前端,前端做对应的操作就能将文件下载下来。

Java中将Html转换为PDF相关推荐

  1. java docx转pdf_如何在Java中将DOCX转换为PDF

    自从Microsoft Word 2003中引入DOCX格式以来,由于其易于编辑和深入的设计选择,DOCX格式一直在全球各地的办公室中享有很高的知名度.但是9当涉及到兼容性,尤其是最终用户的查看一致性 ...

  2. doc转pdf java_在java中将.doc转换为.pdf(免费)

    我创建了一个java应用程序,在输出中创建一些文档 . 这些文档是使用apache POI api创建的,由文本abn表组成 . 我的老板现在决定他们也希望用pdf格式存储它们 . 他们当然有0美元的 ...

  3. 在Java中将AI转换为PSD,JPEG或PNG图像格式指南

    Adobe Illustrator文件可用于将构想变为现实.但是,许多应用程序未广泛支持此文件格式.因此,可能需要将AI文件转换为不同的栅格图像和其他文件格式. 为了解决此问题,可以在Java应用程序 ...

  4. 在Java中将boolean转换为int

    本文翻译自:Convert boolean to int in Java 在Java中将boolean转换为int的最常用方法是什么? #1楼 参考:https://stackoom.com/ques ...

  5. 在Java中将Double转换为Integer

    本文翻译自:Cast Double to Integer in Java Any way to cast java.lang.Double to java.lang.Integer ? 有什么方法可以 ...

  6. 如何在Java中将String转换为int?

    如何在Java中将String转换为int ? 我的字符串仅包含数字,我想返回它代表的数字. 例如,给定字符串"1234" ,结果应为数字1234 . #1楼 好吧,要考虑的一个非 ...

  7. 如何在Java中将String转换为int

    在本教程中,我们将看到将Java中的String转换为int(或Integer)的各种方法. 您可以使用以下任何一种方式: –使用Integer.parseInt(string) –使用Integer ...

  8. 在Java中将字符串转换为日期,将日期转换为字符串

    Sometimes we have to Convert String to Date in java program or convert Date to String in a different ...

  9. 在Java中将字符串转换为char数组,将char数组转换为String

    Today we will learn how to convert String to a char array and then char array to String in Java. 今天, ...

最新文章

  1. Sublime注释插件--DocBlockr
  2. 小马拉大车,无线网络优化
  3. sql server:alter database name
  4. JQUERY 常用方法汇总
  5. 细思恐极,插上U盘就开始执行Python代码的程序
  6. 利用pylot进行性能测试
  7. IBASE timestamp conversion exit
  8. IntelliJ如何设置自动导包
  9. wps表格粗线和细线区别_详解论文中的表格技术
  10. scrum master_从Scrum Master到工程副总裁:职称为何重要
  11. jQuery学习(六)—jQuery对象的创建
  12. 问道神兵天降服务器维护,问道12月29日全区更新维护1.473公告(转聊吧)
  13. ft232电路ttl_FT232AM的设计电路及中文资料
  14. 华为云GaussDB技术创新持续发力,荣膺DTCC2021创新大奖
  15. TopoDOT | 高精地图三维矢量元素提取——道路车道标线
  16. 2021年海洋工程装备行业发展研究报告
  17. TECLAST(台电)双系统板tPAD点评
  18. 全国计算机二级考c考点,2019年全国计算机二级C语言考试考点解析(1)
  19. android编辑图片和文字,微商图片和文字编辑器
  20. 金立手机android怎么关闭,金立手机软件卸不掉怎么办 金立手机软件卸不掉如何解决...

热门文章

  1. 老程序员之DELPHI XE5之手机应用开发案例之一
  2. 中国高端装备行业运营态势及投资竞争力分析报告2021-2027年版
  3. Go的简单入门:开始使用模糊测试
  4. 安全经过广州火车站十大攻略(转)
  5. 帮忙投票的链接怎么弄的怎么创建微信链接投票投票点赞链接怎么做
  6. (TF)Anaconda安装Tensorflow+Keras+Jupyter Notebook 老电脑(CPU不支持AVX指令集)
  7. 汾阳哪里有计算机培训班,汾阳计算机培训班,汾阳计算机培训价格,汾阳计算机培训学费一览表 - IT教育频道...
  8. leveldb 原理解析
  9. Python爬虫常用的几种数据提取方式
  10. 有限合伙企业与有限责任公司区别