我在java中使用iText并尝试制作一个简单的程序,用它来创建一个包含希腊文字的PDF文件。 这是我的代码的一部分:
(...)
**public String url = "C:/Windows/Fonts/arial.ttf";**
public int size = 12;
**public String GREEK_CODEPAGE = "Cp1253";**
(...)
public void createPdf(String filename, String INPUT)throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filename));
document.open();
**BaseFont fonty = BaseFont.createFont(url , GREEK_CODEPAGE , true);
Font myfonty = new Font(fonty, size, Font.NORMAL);
document.add(new Paragraph(INPUT, myfonty));**
document.close();
}
因此,我调用此方法并创建我的PDF文件,但由于某种原因,这些字符 在我的文本中,“Δ”(Capital Delta)和“Ω”(Capital Omega)已被替换 空格(所有其他字符,包括较低的delta和较低的omega,都可以)。 我不确定这是否是一些故障,或者我做了什么。我尝试使用支持希腊字符的其他代码页和字体,但这两个字符仍然缺失。你能帮助我吗?提前谢谢。
答案 0 :(得分:0)
要修复希腊字母的问题,请更改编码:
BaseFont fonty = BaseFont.createFont(url, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fonty.setSubset(true);
您可以选择仅嵌入字体的子集(第二行)。