泰语字符呈现问题

fgw7neuy  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(446)

当我使用itext从带有thymeleaf的html文件在pdf生成中呈现泰国字符时,有些字符存在问题。当同一水平位置有3个字符时,如下所示:ชื่" 最上面的字符被向下推并与第二个字符合并。
以html文件形式打开时的正确文本:

打开生成的pdf文件后的文本不正确:

有没有办法解决这个问题?

ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode(TemplateMode.HTML);
        templateResolver.setCharacterEncoding("UTF-8");
        TemplateEngine templateEngine = new TemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);

Context context = new Context();
        context.setVariable("productName", "product1");

String html = templateEngine.process(htmtFilePath, context);

ITextRenderer renderer = new ITextRenderer();
ITextFontResolver resolver = renderer.getFontResolver();

resolver.addFont(new ClassPathResource(FONT_PATH_EKACHON_BOLD).getPath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
renderer.setDocumentFromString(html);
renderer.layout();

String fileName = "output.pdf"
OutputStream outputStream = new FileOutputStream(fileName);
renderer.createPDF(outputStream);

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题