在jasper-reports部分中,有这个jasper-report-character-encoding-in-pdf问题。
在Jasper Report中无法解决该问题,因为它似乎是itext问题(使用iText v.5.4.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
)
只是出于好奇,这是怎么回事?(看起来像某些char,带有虚线圆圈,应该向后移动,但这没有发生)。
这是.tff
iText不支持此类字体的问题吗?
将Bruno Lowagie(itext的原始开发人员)的评论转换为答案(社区Wiki)
您看到的行为是由iText不支持连字引起的。(github.com 5.5.8的当前版本)
您需要下一个未发布的iText版本。我们将于明年(2016年)发布Beta版,但仅向客户发布
由于@Rad Lexus提供了一些悬赏,这另一个有关直接访问iText中的openType字形的问题有了一个答案:访问iText中的OpenType字形变体
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句