iText,Java - PDF上没有出现两个希腊字符

时间:2011-07-26 08:17:32

标签: java pdf character itext

我在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,都可以)。 我不确定这是否是一些故障,或者我做了什么。我尝试使用支持希腊字符的其他代码页和字体,但这两个字符仍然缺失。你能帮助我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

要修复希腊字母的问题,请更改编码:

BaseFont fonty = BaseFont.createFont(url, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
fonty.setSubset(true);

您可以选择仅嵌入字体的子集(第二行)。