Специальные символы в iText - PullRequest
       12

Специальные символы в iText

4 голосов
/ 20 сентября 2010

Мне нужна помощь в использовании этих символов ⎕, ∨, ๐, Ʌ и так далее. Но когда я создаю PDF с iText, эти символы не появляются.

Что я могу сделать, чтобы появились эти символы?

Ответы [ 4 ]

8 голосов
/ 19 октября 2010

Вы должны использовать шрифт и кодировку, которые содержат эти символы.Лучше всего использовать IDENTITY_H для своей кодировки, поскольку это дает вам доступ к каждому символу в данном шрифте ... но вам все равно придется использовать правильный шрифт.Глава «Шрифты в iText in Action»: http://www.itextpdf.com/book/chapter.php?id=11

Примеры приведены справа внизу.Покупка книги, вероятно, тоже поможет.

2 голосов
/ 09 января 2012

У меня тоже была такая же проблема, и я понял, что использование IDENTITY_H для кодирования работает нормально Например:

java.awt.Font f =...;
Font font = FontFactory.getFont(f.getName(),BaseFont.IDENTITY_H)

Я не понимаю, почему с BaseFont.WINANSI это не работает. Winansi - это стандартный набор символов Windows Cp1252, который используется моей JVM. Итак, если символ правильно отображается в Java, почему это не так для PDF?

1 голос
/ 28 сентября 2010

Вы можете экранировать их в соответствии с escape-последовательностью Unicode, определенной в спецификации языка Java. Смотри http://java.sun.com/docs/books/jls/first_edition/html/3.doc.html

Если вы используете IntelliJ IDEA для своего кода, вы можете загрузить плагин StringManipulation, который сделает выход за вас. В настройках IDEA вы также можете установить флажок «Прозрачное преобразование нативных в ascii» в разделе «Кодировки файлов», и это должно помочь в этом.

0 голосов
/ 14 июля 2015

квадрат в pdf-файле от iText:

BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialbd.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
question.add(new Phrase("\u25A1", new Font(bf, 26)));

Вы можете увидеть пример файла pdf здесь

...