我现在已经尝试使用 itextpdf(com.itextpdf 内核、布局、表单、pdfa)在 Java 中生成包含特殊字符 (äöüß) 的 PDF。我尝试了几种不同的变体,比如加载 TTF 文件和设置编码:
FontProgram fontProgram = FontProgramFactory.createFont( "font/FreeSans.ttf") ;
PdfFont font = PdfFontFactory.createFont( fontProgram, "UTF-8" ) ;
document.setFont( font );
这样它根本不显示特殊字符。
这也不管用:
var font = PdfFontFactory.createFont(StandardFonts.HELVETICA, PdfEncodings.UTF8);
document.setFont( font );
我还没有找到任何解决方案,官方教程似乎也没有解决方案。
其他编码只渲染占位符。
这就是我添加文本的方式:
PdfWriter writer = new PdfWriter(filename);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
Paragraph p = new Paragraph("äüöß");
document.add(p);
document.close();