Украинские (кириллические) символы не отображаются в отчете Jasper PDF - PullRequest
11 голосов
/ 23 февраля 2011

Я пытаюсь отобразить украинский символ в отчете яшмы в виде файла PDF.но он не отображается в формате pdf.

, когда я экспортирую отчет во все другие форматы, такие как html, csv..ukranian char.

Ответы [ 4 ]

9 голосов
/ 30 июля 2013

Установить некоторые свойства текстового поля в iReport.Используйте шрифт DejaVu Sans .Установите кодировку pdf на Cp1251 и isPdfEmbedded на true .

Пример: <font fontName="DejaVu Sans" isStrikeThrough="false" pdfEncoding="Cp1251" isPdfEmbedded="true" />

jasperreports шрифты как mavenзависимость:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
</dependency>
8 голосов
/ 23 февраля 2011

Сначала убедитесь, что у вас правильная кодировка:

JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");

Тогда вам следует заменить шрифты на те, которые поддерживают кириллицу. Это делается с помощью стилей:

public void addPdfFontsToStyles(JRStyle[] styles) {
    if (styles != null) {
        for (JRStyle style : styles) {
            if (style.getName().equals("reportStyle")) {
                style.setPdfFontName("/com/yourcompany/fonts/times.ttf");
                style.setBlankWhenNull(true);
            }

            if (style.getName().equals("reportBoldStyle")) {
                style.setPdfFontName("/com/yourcompany/fonts/timesbd.ttf");
                style.setBlankWhenNull(true);
            }

        }
    }
}

И вызвать этот метод с addPdfFontsToStyles(jasperReport.getStyles());

Конечно, предварительные условия:

  • ваш текст использует одно из названий стилей выше
  • у вас есть файлы ttf на пути к классам

Это должно сделать (я беру код из работающего кириллического приложения)

2 голосов
/ 18 января 2016

Начиная с jasper report v5, v6 правильный способ отображения символов в pdf - использовать font-extension

Для получения дополнительной информации см. Эти вопросы по stackoverflow:

Jasper Reports PDF не экспортирует кириллические значения

Как я могу отобразить «$ £ Ω € απ in» в Jasperserver PDF с помощью iReport?

2 голосов
/ 27 апреля 2013
  1. зарегистрировать шрифт в JVM

    Font myFont = Font.createFont(Font.TRUETYPE_FONT, new File("pathToCyrillicFont"));
    GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(myFont); 
    
  2. добавить в поле кириллицы это:

    <textElement>
       <font
                      fontName="fontName"
                      pdfFontName="pathToCyrillicFont"
                      size="13"
                      isBold="false"
                      isItalic="false"
                      isUnderline="false"
                      isPdfEmbedded ="true"
                      pdfEncoding ="Cp1251"
                      isStrikeThrough="false"
       /> 
     </textElement>
    

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...