在jasper-reports部分中有这个jasper-report-character-encoding-in-pdf问题。字体(Myanmar3)在iText中无法正确显示
问题不能在碧玉报告来解决,因为它似乎是一个问题itext(利用iText v 5.5.4)
示例代码:
public class FontTest {
/** The resulting PDF file. */
public static final String RESULT = "pdf/fontTest.pdf";
/** the text to render. */
public static final String TEST = "\u1005\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1011\u100A\u103A\u101E\u103D\u1004\u103A\u1038\u1001\u103C\u1004\u103A\u1038";
public void createPdf(String filename) throws IOException, DocumentException {
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
BaseFont bf = BaseFont.createFont(
"lib/mm3.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font = new Font(bf, 20);
ColumnText column = new ColumnText(writer.getDirectContent());
column.setSimpleColumn(36, 730, 569, 36);
column.addElement(new Paragraph(TEST, font));
column.go();
document.close();
}
public static void main(String[] args) throws IOException, DocumentException {
new FontTest().createPdf(RESULT);
}
}
的字体可以是在mm3.ttf
下载将错误地呈现为:
应该呈现为(使用浏览器相同的ttf
)
只是出于好奇发生了什么事? (似乎是某些字符,虚线的圆圈应该向后移动,但这不会发生)。
这是.tff
的问题还是iText不支持这些字体?
你看到的是由此造成的行为iText不支持连字的事实。您需要下一个未发布的iText版本。我们将在明年发布测试版本,但仅限于客户。 –
@BrunoLowagie,1000感谢您的回复,期待新版本 –
是否可以使用此版本的iText直接处理* glyphs *?然后你需要知道的是这个字体的内部OpenType'规则',你可以在你的代码中做charcater的翻译。 – usr2564301