Itext生成pdf文件,html转pdf时中文一直显示不出来

复制代码
 之前使用freemark模板渲染ftl页面,转出的pdf中,css2有些样式好像不支持,比较常用的居中样式都没有效果,text-align:center
改造成使用html页面来转pdf,css2的样式可以生效,itext是不支持css3的弹性布局的

ITextRenderer pdfRenderer = new ITextRenderer();
            // 添加字体设置
            ITextFontResolver fontResolver = pdfRenderer.getFontResolver();
          /*  fontResolver.addFont("C:/Windows/Fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            fontResolver.addFont("C:/Windows/Fonts/simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
*/
            try {
                fontResolver.addFont("C:/Windows/Fonts/simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

                /*String path = ResourceUtil.getResourceObj("classpath:/fonts/SimSun.ttf").getUrl().getPath();
                *//*fontResolver.addFont(path, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);*//*
                fontResolver.addFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
*/
            } catch (Exception e) {
                log.error(e.getMessage(),e);
            }

            pdfRenderer.setDocumentFromString(createXHtml(rowsHtml));
           /* File f= getFileFromResources();
            pdfRenderer.setDocument(f);*/
            pdfRenderer.layout();
            pdfRenderer.createPDF(outputStream);

尝试好多种方式,最后可能是跟字体有关系

字体设置为C:/Windows/Fonts/simhei.ttf 黑体,同时html页面上样式要添加

复制代码
body {
    font-family: SimHei;
}

pdf生成方式参考项目:E:\myfiles\project\github\demo-html2pdf

字体问题参考文章:https://blog.51cto.com/u_15127651/4527950

最后完美解决字体问题!!

相关推荐
非凡ghost1 小时前
AI修图不“造假“,摄影师的出片效率加速器
服务器·前端·人工智能·电脑
2601_951615201 小时前
网页设计模板源码 web前端模板网页源码下载
前端
mmsx1 小时前
osmdroid 地图实战 03|地图的"分层世界":离线方案、图层模型与 Overlay 体系
android·前端
郭邯1 小时前
从零到一:我用 AI 写了个复利计算器,顺便治好了我的"公式恐惧症"
前端
Pointer Pursuit1 小时前
C++11特性(二)
前端·c++·算法
天道kabuto1 小时前
Vue3 升级踩坑:子组件 click 事件为什么会触发两次?
前端
Nayana1 小时前
《Web 到 HarmonyOS》-- Ability、Stage、模块化与路由导航
前端
ShineWinsu2 小时前
对于 Vue 3:从为什么学 Vue,到声明式渲染与数据响应式的解析
前端·javascript·vue.js
粥里有勺糖2 小时前
视野修炼-技术周刊第132期 | 一些有趣的组件
前端·github·aigc
এ慕ོ冬℘゜2 小时前
样式控制 .css ()
前端·css