Как показать квадратный символ в itext - PullRequest
0 голосов
/ 08 октября 2019

Я использую 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

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