【发布时间】:2011-07-26 08:17:32
【问题描述】:
我在 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,都可以)。 我不确定这是否是一些小故障,或者我做了什么。我尝试使用其他支持希腊字符的代码页和字体,但仍然缺少这两个字符。你能帮助我吗?提前致谢。
【问题讨论】:
-
“INPUT”从何而来?我问,因为也许“Δ”和“Ω”看起来像是大写的希腊字母,但实际上可能完全不同。第二种选择是您使用的 Arial 字体由于某种原因缺少这两个字母。
-
INPUT 来自 main。在这种情况下,它是一个由所有希腊字母(大写字母和小写字母)、音调元音、专有标点符号和一些符号组成的字符串。 Arial 字体是标准的 Windows 字体,在 Word、Paint 等中没有这样的问题。