Кодирование одинаковых специальных символов

Я использую JasperReports для экспорта PDF. У меня есть проблема со специальными символами (è, à, û), тогда как у меня нет проблем с (é, €). Когда я создаю свой файл с помощью Jaspersoft Studio, у меня нет никаких проблем (все специальные символы в порядке). Проблема возникает только тогда, когда я экспортирую PDF из своего приложения (и только эти символы не работают идеально (è, à, û), а не (é, €)

Вот мой код:

try {
          jasperPrint = JasperFillManager.fillReport(jasperReport, parametres, connection);
    } catch (JRException e) {
          throw e;
    } finally {
          connection.close();
    }

    return jasperPrint;
}

public byte[] exporterMoisPDF(String siret, long annee, long mois, String num_declarant, String date_declaration, String mois_lettre, String nomFichierJasper)throws Exception {
    byte[] rapportPDF=null;

    JasperPrint jasperPrint = genererExportMoisJasper(siret, annee, mois, num_declarant, date_declaration, mois_lettre, nomFichierJasper);  

    jasperPrint.setLocaleCode("UTF-8");
    rapportPDF = JasperExportManager.exportReportToPdf(jasperPrint);

    return rapportPDF;

person Paul    schedule 28.10.2014    source источник


Ответы (2)


Возможно, у вас нет этих символов в вашем fontname.ttf. Добавьте правильный шрифт в jasperreports-fonts-x.x.x.jar и перекомпилируйте его.

person Makko    schedule 31.10.2014

Попробуйте вставить строку <style name="style1" isDefault="true" pdfEncoding="Cp1252"/> в файл .jrxml. (Вы также можете добавить его в дизайнере отчетов как «Стиль»).

У меня также была проблема с центральноевропейскими символами, и она решается настройкой стиля по умолчанию pdfEncoding="Cp1250".

Я также попробовал строку <property name="net.sf.jasperreports.default.pdf.encoding" value="Cp1250"/>, но это не повлияло на библиотеку JasperReports 6.5.0 в моей среде.

person Linkman    schedule 23.01.2018