pom依赖
     <dependency><groupId>com.itextpdf.tool</groupId><artifactId>xmlworker</artifactId><version>5.5.8</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>
CustomXMLWorkerFontProvider.java解决中文不显示问题
package test;import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.tool.xml.XMLWorkerFontProvider;
import lombok.extern.slf4j.Slf4j;/*** 解决XMLWorkerHelper中文不显示。* <p>使用iTextAsian.jar中自带的中文字体**/
@Slf4j
public class CustomXMLWorkerFontProvider extends XMLWorkerFontProvider {@Overridepublic Font getFont(final String fontName, final String encoding, final boolean embedded, final float size, final int style,final BaseColor color) {BaseFont bf = null;try {bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);Font font = new Font(bf, size, style, color);font.setColor(color);// log.info("PDF文档字体初始化完成!");return font;} catch (Exception e) {log.error("exception:", e);}return null;}
}
PdfUtil.java
package test;import com.alibaba.fastjson.JSONObject;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;import java.io.*;
import java.nio.charset.Charset;public class PdfUtil {/*** 通过html生成文件* @param htmlContent  html格式内容* @param file  输出文件file*/public static void createdPdfByItextHtml(String htmlContent,File file){InputStream inputStream = null;FileOutputStream outputStream = null;PdfWriter writer = null;try {// 1. 获取生成pdf的html内容inputStream= new ByteArrayInputStream(htmlContent.getBytes("utf-8"));outputStream = new FileOutputStream(file);Document document = new Document();writer = PdfWriter.getInstance(document, outputStream);document.open();// 2. 添加字体
//            XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
//            fontImp.register(getFontPath());// 3. 设置编码XMLWorkerHelper.getInstance().parseXHtml(writer, document, inputStream, Charset.forName("UTF-8"),new CustomXMLWorkerFontProvider());// 4. 关闭,(不关闭则会生成无效pdf)document.close();} catch (Exception ex) {ex.printStackTrace();}finally {try {if(writer!=null){writer.close();}if (outputStream != null) {outputStream.close();}if (inputStream != null) {inputStream.close();}}catch(IOException ex){ex.printStackTrace();}}}public static void main(String[] args) {String a = "{\"html\":\"<p>saasafdfdsadasd</p>\\n<p><strong>sdfsdfsdf</strong></p>\\n<p><strong>打开解放军官兵的时间赶不上的肌肤比较失败的不过深度不够撒旦解放大师傅士大夫士大夫士大夫士大夫士大夫看见电脑打开发给你的口水歌看你可怜的那个锻炼方法的联合国的法律后果费德勒换个地方;陆海空地方管理框架和 规范化风格风格化风格化分隔花粉管花粉管和法规和风格化法国和法国恢复回复给梵蒂冈豆腐干反对恢复共和国建国和话剧规划局肉汤羊肉汤预亏里哦蕾哈娜贴吧软弱和任天堂如果退货有高速带宽不够数量的可能过来的咖啡馆上的困境老师的可能各类考试的 <span id=\\\"attachment_mce_2\\\" class=\\\"attachment\\\" contenteditable=\\\"false\\\"><img src=\\\"http://172.16.80.138:8917/iccMeeting/tinymce/fileIcons//file_type_image.svg\\\" /><a href=\\\"http://172.16.80.145//fileServer\\\\upload\\\\2022/06/27\\\\8ac4290caa5f0a88930d80d2f4b608f5.jpeg\\\">8ac4290caa5f0a88930d80d2f4b608f5.jpeg (8.35 K)</a></span></strong></p>\\n<p><img src=\\\"http://172.16.80.145//fileServer\\\\upload\\\\2022/06/27\\\\cut-6546-1656312210599.png\\\" alt=\\\"\\\" /><img src=\\\"http://172.16.80.145//fileServer\\\\upload\\\\2022/06/27\\\\cut-6546-1656312781796.png\\\" alt=\\\"\\\" /></p>\\n<p><strong>sdfsdf</strong></p>\\n<p><strong><span style=\\\"color: #e03e2d;\\\">yrdfsdf</span></strong></p>\\n<p><strong><span style=\\\"color: #e03e2d;\\\"><span style=\\\"font-size: 24px;\\\">dsfsdfsdfsfsdfsdfsdfsxxxdfvbvscaskdbsjhcbsddjfcbsdjdbfcsjdbfcshdbfcjskzhbvdfafvajkshbdfvjhoasdbvjsadbvkjdsbvkjdfhbfvkjdbhfvkjdhbfvkjdzbhfvjjdhbvvdf你好山东福建河南山东快解封你是困难的时刻发你的空间概念的设计风格百度是打开空间概念是的看法呢广东省快解封那个时代开发功能速度快给你是打开开关你手动开关你是大哥</span></span></strong></p>\\n<p><span style=\\\"text-decoration: underline;\\\"><strong><span style=\\\"color: #e03e2d; text-decoration: underline;\\\"><span style=\\\"font-size: 24px;\\\">dsfsfsd<span id=\\\"attachment_mce_1\\\" class=\\\"attachment\\\" contenteditable=\\\"false\\\"><img src=\\\"http://172.16.80.138:8917/iccMeeting/tinymce/fileIcons//file_type_image.svg\\\" /><a href=\\\"http://172.16.80.145//fileServer\\\\upload\\\\2022/06/27\\\\8ac4290caa5f0a88930d80d2f4b608f5.jpeg\\\">8ac4290caa5f0a88930d80d2f4b608f5.jpeg (8.35 K)</a></span></span></span></strong></span></p>\",\"imgUrl\":\"http://172.16.80.138:8917\"}";String b = "<html><body>" + JSONObject.parseObject(a).get("html").toString() + "</body></html>";createdPdfByItextHtml(b,new File("D:/test.pdf"));}}

java导出富文本为pdf相关推荐

  1. Java 导出富文本到Word(包含图片)

    导入依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base< ...

  2. java导出富文本到word_富文本编辑器内容实现word导出下载,请各位大神们指点,感激不尽...

    展开全部 给个我之前的写的例子给你action 层public ActionForward dataExport(ActionMapping mapping, ActionForm form, Htt ...

  3. java 富文本 word_Java导出富文本到word

    源码地址: 背景 最近用java开发一个中车项目管理系统,里面有一个维修单word导出功能. 可用方案 在网上查找资料,总结出两种比较可行的方案. (1) 制作word模板,导出成mht文件(单页面网 ...

  4. java freemarker 导出富文本到Word文档

    最近一直在加班 导致看到代码就想吐 今天抽出时间来记录一下 用freemaker导出富文本信息 之前使用freemaker导出图片等信息时 使用的是xml方式,不明白的 可以看 freemaker生成 ...

  5. 【操作word】Java + POI导出富文本的内容到word文档

    这周工作中,遇到一个需求是需要将数据库中富文本内容导出到word文档里面,于是就采用POI技术实现了一下导出word文档的功能.(word文档是识别html内容的,所以富文本内容也自然能够识别.) 一 ...

  6. springBoot+itext处理富文本转pdf

    springBoot+itext处理富文本转pdf pom文件引入依赖 html转PDF方法 处理不换行 创建包 新增Breaker.java类 pom文件引入依赖 <!-- itext5 st ...

  7. 导出富文本格式word

    /*try {*//*** 关键地方* 生成word格式*//*POIFSFileSystem poifs = new POIFSFileSystem();DirectoryEntry directo ...

  8. springboot导出富文本框数据到word

    这里需要注意的是:依赖的版本号都是一一对应的,如果使用不兼容的版本号,可能会报编译异常和缺少类的错误,这里已提供对应的所需依赖和版本号,大家可以参考一下. 具体的api文档可以参考官网api,很好理解 ...

  9. java集成富文本编辑器UEditor

    JAVA集成富文本编辑器UEditor 集成前说明 集成UEditor 一.UEditor下载 二.UEditor迁入项目 三.引入ueditor中的js 四.初始化UEditor 五.实现图片上传 ...

最新文章

  1. 华为云IoT提出泛在新联接,让万物皆可联
  2. 面向对象回顾(静态变量、类加载机制/双亲委派模型、Object类的方法、类和对象区别)
  3. AngularDart4.0 指南- 表单
  4. 系统搭建遇到问题3:Ubuntu问题造成网卡名称异常导致Vivado绑定网卡地址的Lic无法正常工作(JESD)...
  5. python医学数据挖掘_GitHub - SSSzhangSSS/Python-Data-mining-Tutorial: Python数据挖掘教程
  6. FLV audio tag
  7. k8s ready 不调度_【零基础学云计算】k8s部署---master节点组件部署(三)
  8. android view选中状态,RecyclerView选中
  9. 996 都升不了职的程序员该如何拯救?
  10. 收藏:如何实现路由器的本地验证和授权
  11. python安装计算机丢失api_Python安装后提示api-ms-win-crt-runtime-|1-1-0.dll丢失
  12. 【优化算法】饥饿游戏搜索算法(HGS)【含Matlab源码 1802期】
  13. 关于加密与解密、签名与验签
  14. 各品牌路由器默认账号密码
  15. java.lang.UnsupportedOperationException\r\n\tat java.sql.Date.toInstant(Date.java:304)
  16. 【作业】非结构化数据相关知识整理
  17. 贝尔曼福特_福特自行车之旅
  18. 公共经济学(开卷)期末复习题
  19. 共同抵制恶意APP CNCERT公布首批黑名单
  20. QT 自定义加载等待(Loading)提示框

热门文章

  1. 扫地机器人作文列数字举例子_扫地机器人作文500字全面版
  2. hdu2546-饭卡???
  3. 北京大学计算机技术应用硕士分数线,北京大学2018年考研复试基本分数线已发布...
  4. JOYEAS·Diskey迪斯凯
  5. MYSQL 整型转字符型 拼接
  6. CSS笔记08-字体
  7. CC2530的通用IO端口(GPIO)输入和输出控制
  8. 09 | 设计模式之美——王争
  9. 即时通讯在线聊天APP开发解决方案
  10. DigitalOcean 中的浮动 IP 是什么?