本文主要是介绍Itext生成pdf文件,html转pdf时中文一直显示不出来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前使用freemark模板渲染ftl页面,转出的pdf中,css2的很多样式好像不支持 改造成使用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
最后完美解决字体问题!!
这篇关于Itext生成pdf文件,html转pdf时中文一直显示不出来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!