java如何根据富文本生成pdf文件
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关java如何根据富文本生成pdf文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。示例代码:public class PdfUtil {
千家信息网最后更新 2025年11月07日java如何根据富文本生成pdf文件
这篇文章将为大家详细讲解有关java如何根据富文本生成pdf文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
示例代码:
public class PdfUtil { /* * 生成pdf工具类 * wmy 12:40 2019/8/9 * @Param [guideBook, pdfPath] * @return java.lang.Boolean **/ public static Boolean htmlToPdf(GuideBook guideBook, String pdfPath) { try { // 1.新建document Document document = new Document(); // 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。 //创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(pdfPath)); // 3.打开文档 document.open(); //要解析的html //html转换成普通文字,方法如下: org.jsoup.nodes.Document contentDoc = Jsoup.parseBodyFragment(getHtml(guideBook.getTitle())+guideBook.getContent()); org.jsoup.nodes.Document.OutputSettings outputSettings = new org.jsoup.nodes.Document.OutputSettings(); outputSettings.syntax(org.jsoup.nodes.Document.OutputSettings.Syntax.xml); contentDoc.outputSettings(outputSettings); String parsedHtml = contentDoc.outerHtml(); //这儿的font-family不支持汉字,{font-family:仿宋} 是不可以的。 InputStream cssIs = new ByteArrayInputStream("* {font-family: PingFang-SC-Medium.otf;}".getBytes("UTF-8")); //第四个参数是html中的css文件的输入流 //第五个参数是字体提供者,使用系统默认支持的字体时,可以不传。 XMLWorkerHelper.getInstance().parseXHtml(writer, document, new ByteArrayInputStream(parsedHtml.getBytes()), cssIs); // 5.关闭文档 document.close(); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /* * 下载文件 * wmy 9:54 2019/8/12 * @Param [request, response, inputStream, fileName] * @return void **/ public static void download(HttpServletRequest request, HttpServletResponse response, InputStream inputStream, String fileName){ BufferedOutputStream bos = null; try { // 定义输出缓冲 10k byte[] buffer = new byte[10240]; //文件名称的处理 // http://127.0.0.1:5002/guide-book/pdf?id=124 fileName = fileName.replaceAll("[\\pP\\p{Punct}]", "-").replace(" ", "-").replaceAll("[-]+", "-")+".pdf"; String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.contains("msie") || userAgent.contains("like gecko")) { fileName = URLEncoder.encode(fileName, "UTF-8"); } else { fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1"); } response.setCharacterEncoding("utf-8"); response.setContentType("application/msword"); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); bos = new BufferedOutputStream(response.getOutputStream()); int bytesRead = 0; while ((bytesRead = inputStream.read(buffer)) != -1) { bos.write(buffer, 0, bytesRead); } } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } } } /* * 获取html * wmy 10:39 2019/8/12 * @Param [title] * @return java.lang.String **/ public static String getHtml(String title){ return ""+title+"
"; }}关于"java如何根据富文本生成pdf文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
文件
参数
文档
生成
名称
对象
篇文章
UTF-8
富文
书写器
字体
更多
支持
输出
不错
实用
普通
代码
内容
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
日照农业农村局网络安全
各种软件数据库
做软件开发什么笔记本
软件开发企业准则
网络安全标准化评审标准
嘉定区自动化软件开发批发价格
html 多个连接数据库
运服务器
成都java软件开发工程师
最新网络安全保密协议范本
网络安全和信息化制度
2018网络技术题型
计算机网络安全的题库
傻瓜式PC软件开发软件
维特数据库
qq邮箱登录提示服务器验证失败
软件开发 律师函
达梦数据库怎么将表里的数据删除
mysql数据库表锁住了怎么办
石嘴山软件开发定制找哪家
健全完善网络安全管理制度
数据库如何复制视频
软件开发公司起名三字
中小学软件开发竞赛
抖推猫类似的软件开发
移动网络技术岗主要干什么
sybase数据库系统
选国外云服务器的优缺点
全国高校思政网络安全教育
广州领域通网络技术有限公司