iText, Java - два определенных греческих символа не появляются в PDF - PullRequest
0 голосов
/ 26 июля 2011

Я работал с iText в Java и попытался создать простую программу, которая создает 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, но по какой-то причине символы «Δ» (заглавная дельта) и «Ω» (заглавная омега)были заменены везде в моем тексте пробелами (все остальные символы, включая нижнюю дельту и нижнюю омегу, в порядке).Я не уверен, что это какой-то глюк или что-то, что я сделал.Я пытался использовать другие кодовые страницы и шрифты, которые поддерживают греческие символы, но эти 2 символа все еще отсутствовали.Вы можете мне помочь?Заранее спасибо.

1 Ответ

0 голосов
/ 03 апреля 2013

Чтобы исправить пробелм с греческими буквами, измените кодировку:

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

При желании вы можете встраивать только подмножество шрифта (вторая строка).

...