好吧,我的数据库中有一些记录,其中一个有一个字符 Đ wich 是克罗地亚语。
数据库中的记录是正确的,当我在JSF/Primefaces
角色的网格中显示它时,它会完美显示。
但是,当我在PDF
使用iText
时打印它时Đ
丢失了。
我翻阅了很多手册,包括“iText in Action 2nd edition”,并尝试了每一个技巧,但没有任何效果。
手册说如果你把 writer.getAcroForm().setNeedAppearances(true); 系统将尝试渲染角色的“图像”,但它不起作用。
到目前为止,我正在尝试另一种方法,我下载了一个克罗地亚语 ttf 文件,这是我目前的状态
BaseFont CROACIA =BaseFont.createFont("C:\\CroatiaHrvatska.ttf",BaseFont.WINANSI, BaseFont.EMBEDDED);
CROATA = new Font(CROACIA, 12);
Document documento = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(documento, baos);
writer.setInitialLeading(20);
documento.open();
String frase ="Đaniel";
documento.add(new Paragraph(frase, CROATA));
然后我关闭文档并将其下载为PDF
,它可以工作,但Đ
仍然消失了(大部分文本也是如此)。
我尝试使用ISO-8859-1
和UTF-8
作为一些人在 SO 的其他问题中建议的字符,但它不起作用。