Я использую itext 7 для создания отчета в формате PDF. Я обнаружил, что он не может правильно отображать квадратный символ. Например: m / s²
Всегда выдается исключение:
java.lang.NullPointerException
at com.itextpdf.kernel.font.PdfType0Font.getCidFontType2(PdfType0Font.java:723)
at com.itextpdf.kernel.font.PdfType0Font.flushFontData(PdfType0Font.java:811)
at com.itextpdf.kernel.font.PdfType0Font.flush(PdfType0Font.java:600)
at com.itextpdf.kernel.pdf.PdfDocument.flushFonts(PdfDocument.java:1846)
at com.itextpdf.kernel.pdf.PdfDocument.close(PdfDocument.java:800)
at com.itextpdf.layout.Document.close(Document.java:120)
Я пытался привести несколько примеров того, что я искал в Google. например: https://itextpdf.com/en/resources/examples/itext-7/showing-special-characters
Ниже приведен код:
File baseFontFile = new File(this.getClass().getClassLoader().getResource("font/FreeSans.ttf").getPath());
PdfFont baseFont = PdfFontFactory.createFont(baseFontFile.getAbsolutePath(), PdfEncodings.IDENTITY_H);
Text unitTxt = null;
if("m/s²".equals(unit)) {
unitTxt = new Text(unit);
unitTxt .setFont(baseFont );
unitTxt .setFontSize(11);
}
Приведенный выше код не сгенерирует исключение, но в конечном итоге сгенерирует исключение, когда PdfDocument.close