Как сделать так, чтобы символы кириллицы правильно отображались при конвертации в PDF с помощью itextpdf?

Кто-нибудь знает, как заставить itextpdf работать с символами кириллицы?

I have code: 

 Font normal = FontFactory.getFont(String.valueOf(Font.FontFamily.HELVETICA), "CP1251", false, 13);
 Document doc = new Document(PageSize.A4, 36, 36, 36, 65);
 Paragraph paragraph = new Paragraph("ЗАПИСЬ!!!", normal);
 doc.add(paragraph);

Я видел, что CP1251 работает хорошо, НО для одного символа - в то время как для текстов - ("ЗАПИСЬ" в моем примере). И он отображает все символы, накладывающиеся друг на друга.

Что не так с моим кодом? Thnx!

1 ответ

Решение

Вы можете скачать источник шрифта из сети ( http://fonts4web.ru/Helvetica.html).

Сохраните шрифт в вашем каталоге ресурсов.

Действуйте так, как показано ниже:

public class HelloWorld {

    /** Path to the resulting PDF file. */
    public static final String RESULT = "results/hello.pdf";
    public static final String FONT = "fonts/HelveticaRegular.ttf";

    /**
     * Creates a PDF file: hello.pdf
     * @param    args    no arguments needed
     */
    public static void main(String[] args)
            throws DocumentException, IOException {
        new HelloWorld().createPdf(RESULT);
    }

    /**
     * Creates a PDF document.
     * @param filename the path to the new PDF document
     * @throws    DocumentException
     * @throws    IOException
     */
    public void createPdf(String filename)
            throws DocumentException, IOException {
        Font font = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, true);

        Document document = new Document();

        PdfWriter.getInstance(document, new FileOutputStream(filename));

        document.open();

        document.add(new Paragraph("Hello World! Ты можешь использовать кирилицу.", font));

        document.close();
    }
}
Другие вопросы по тегам