之前使用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
文章来源:https://www.toymoban.com/news/detail-828832.html
最后完美解决字体问题!!文章来源地址https://www.toymoban.com/news/detail-828832.html
到了这里,关于Itext生成pdf文件,html转pdf时中文一直显示不出来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!