Primefaces PDFExporter, отображающий не ASCII буквы в виде мусора в PDF - PullRequest
2 голосов
/ 24 марта 2020

Использование PrimeFaces 6.0 PDFExporter для экспорта данных таблицы данных в PDF.

Использование кода экспорта для следующего кода:

DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent(":contactListform:contactDataTable");
FacesContext context = FacesContext.getCurrentInstance();
com.lowagie.text.Document document = new com.lowagie.text.Document();
java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();

com.lowagie.text.pdf.PdfWriter.getInstance(document, baos);          

document.add(exportPDFTable(context, dataTable, false, false, "UTF-8"));
document.close();
writePDFToResponse(context.getExternalContext(), baos, filename);  

Проблема: Не ASCII буквы (Например, китайские буквы) отображаются в виде символа вопросительного знака (????) в PDF.

1 Ответ

1 голос
/ 24 марта 2020

См. Этот билет для исправления: https://github.com/primefaces/primefaces/issues/3585

PF 8.0 или выше позволяет вам установить шрифт PDF, и вам нужно выбрать шрифт, который поддерживает китайские символы .

PDFOptions pdfOpt = new PDFOptions();
pdfOpt.setFontName("Courier");

Очевидно, что "Courier" нет, но я уверен, что у вас есть шрифт, который поддерживает китайские иероглифы, вы можете установить его?

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