我在我的 pdf 中生成的饼图中有一个关于 unicode 支持的非常令人困惑的问题。这是我所拥有的:我正在生成饼图(使用 jfreechart 库),需要在饼图的标题上添加上标。我测试了,我知道 jfreechart 正在生成正确的标题(上标很好),我还测试了 itext unicode 支持。中间有一个 Graphics2D(来自 java awt),将 jfreechart 转换为模板,然后我可以将此模板打印到我的 pdf 中。根据我的测试,我猜问题应该在 graphics2d 和 itext 模板之间。
PdfContentByte canvas = writer.getDirectContent();
PdfTemplate template = canvas.createTemplate(width, height);
FontMapper mapper = new DefaultFontMapper();
template.setFontAndSize(mapper.awtToPdf(new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 7)) , 7);
Graphics2D graphics2d = template.createGraphics(width, height);
graphics2d.setFont(new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 7));
JFreeChart chart = getPieChart("", title, value);
我发现了问题。问题是模板(PdfTemplate)不显示 unicode 字符。虽然我嵌入了 unicode 字体并将其设置为模板,但仍然无法正常工作。有任何想法吗?