网站建设和商城有什么好处,甘肃住房建设厅网站,做公众好号的网站吗,房产官方网站使用IText导出PDF意外发现其他外文都能导出成功#xff0c;只有泰文会消失#xff0c;查了一下没有能用的办法#xff0c;官网也没有我这种情况#xff0c;最后还是误打误撞试出来的。还是要下载泰文字体#xff0c;网上很多#xff0c;我是从这里下载的#xff1a;http… 使用IText导出PDF意外发现其他外文都能导出成功只有泰文会消失查了一下没有能用的办法官网也没有我这种情况最后还是误打误撞试出来的。还是要下载泰文字体网上很多我是从这里下载的https://fontmeme.com/ziti/thai-fonts/ 导出pdf的方法使用的是html当模版重要的是getConverterProperties方法。 //生成PDF文件至文件服务器private BaseFileInfoResp uploadPdfToFileServer(PoInfo poInfo) {try (ByteArrayOutputStream output new ByteArrayOutputStream()) {MapString, Object stringObjectMap inParamChange(poInfo);stringObjectMap.putAll(PmsPdfFieldEnum.getMap());log.info(json: {}, JSONUtil.toJsonStr(stringObjectMap));Configuration freemarkerCfg new Configuration(Configuration.VERSION_2_3_28);freemarkerCfg.setTemplateLoader(new ClassTemplateLoader(ExcelServiceImpl.class, /template/));Template template freemarkerCfg.getTemplate(pdf.html);StringWriter out new StringWriter();template.process(stringObjectMap, out);String html out.toString();PdfDocument pdf new PdfDocument(new PdfWriter(output));pdf.setDefaultPageSize(PageSize.A4);Document document HtmlConverter.convertToDocument(html, pdf, getConverterProperties());document.getRenderer().close();document.close();MultipartFile multipartFile MultipartFileUtils.buildFileClientFile(String.format(%s_%s.pdf, poInfo.getCode(), poInfo.getCurrentVersion()), output.toByteArray());// 文件上传fastDFS再返回文件地址return fileService.upload(multipartFile, userService.getCurrentUserDto().getUserAccount());} catch (Exception e) {log.info(生成pdf异常:, e);throw new BizException(I18nStaticEnum.static_text_112381.code);}}getConverterProperties()原代码 /*** 解决中文字体问题* return* throws Exception*/private ConverterProperties getConverterProperties() throws Exception {ConverterProperties props new ConverterProperties();FontProvider fontProvider new FontProvider();PdfFont sysFont PdfFontFactory.createFont(STSongStd-Light, UniGB-UCS2-H, false);fontProvider.addFont(sysFont.getFontProgram(), UniGB-UCS2-H);fontProvider.addStandardPdfFonts();fontProvider.addFont(template/font/simsun.ttc);fontProvider.addFont(template/font/STHeitibd.ttf);props.setFontProvider(fontProvider);props.setCharset(utf-8);return props;}getConverterProperties()修改后的代码 /*** 解决中文字体问题* return* throws Exception*/private ConverterProperties getConverterProperties() throws Exception {ConverterProperties props new ConverterProperties();FontProvider fontProvider new FontProvider();// 一定要注释这里就是UniGB-UCS2-H这个编码格式和泰语编码格式不兼容
// PdfFont sysFont PdfFontFactory.createFont(STSongStd-Light, UniGB-UCS2-H, false);
// fontProvider.addFont(sysFont.getFontProgram(), UniGB-UCS2-H);fontProvider.addStandardPdfFonts();fontProvider.addFont(template/font/simsun.ttc);fontProvider.addFont(template/font/STHeitibd.ttf);fontProvider.addFont(template/font/STSONG.TTF); //华文宋体fontProvider.addFont(template/font/NotoSansThai.ttf); //泰语字体props.setFontProvider(fontProvider);props.setCharset(utf-8);return props;}附上jar包版本 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.0.4.RELEASE/version/parentdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversionFinchley.RELEASE/versiontypepom/typescopeimport/scope/dependency!--itext7 html转pdf用到的包--dependencygroupIdcom.itextpdf/groupIdartifactIdhtml2pdf/artifactIdversion3.0.1/version/dependencydependencygroupIdcom.itextpdf/groupIdartifactIditextpdf/artifactIdversion5.5.6/version/dependency!--itext7 中文支持--dependencygroupIdcom.itextpdf/groupIdartifactIdfont-asian/artifactIdversion7.1.12/version/dependency