JasperReports: некоторые символы из UTF-8 теряются после экспорта в PDF - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть отчет, который экспортируется в XLSX и PDF.Код обоих экспортеров очень похож, но при экспорте в PDF кодировка теряется.

Например, в конечном результате просто пропускаются следующие символы: "Č", "ć".При этом «ü», «ß» печатаются правильно.

В XLSx экспортере ( рабочая часть ) я использую довольно простой код:

try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
    JRXlsxExporter xlsExporter = new JRXlsxExporter();
    xlsExporter.setExporterInput(new SimpleExporterInput(jasperPrint));
    xlsExporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
    xlsExporter.exportReport();
    return outputStream.toByteArray();
}

ВВ случае с PDF я использую тот же код ( не работает ):

try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
    JRPdfExporter exporter = new JRPdfExporter();
    exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
    exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
    exporter.exportReport();
    return outputStream.toByteArray();
}

Но он не работает.В обоих случаях я передаю один и тот же экземпляр jasperPrint.

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

Q: Что может вызвать проблему?Есть идеи как это исправить?

1 Ответ

0 голосов
/ 21 февраля 2019

Я подозреваю, что проблема в том, какие шрифты вы используете.Вы уверены, что XLSX и PDF поддерживают шрифт, который вы указали в отчете?В сгенерированном PDF вы можете проверить используемый шрифт, щелкнув правой кнопкой мыши и выбрав свойства документа - есть вкладка со шрифтами.Поддерживает ли шрифт в PDF эти символы?

Если я правильно помню, иногда при экспорте в PDF экспортер будет использовать другой шрифт (если нужный вам не найден / не поддерживается или что-то еще).

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