com.lowagie.text.DocumentException: Font ‘STSong-Light‘ with ‘UniGB-UCS2-H‘
生活随笔
收集整理的這篇文章主要介紹了
com.lowagie.text.DocumentException: Font ‘STSong-Light‘ with ‘UniGB-UCS2-H‘
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
處理word轉(zhuǎn)pdf中文缺失時遇到的問題
異常信息:com.lowagie.text.DocumentException: Font ‘STSong-Light’ with ‘UniGB-UCS2-H’
版本問題,用的是com.lowagie.text1.0.6處理中文字體 版本較低適配不了STSong-Light字體
可以將STSong-Light更換為simsun.ttf "UniGB-UCS2-H"替換為BaseFont.IDENTITY_H 就可以了
問題代碼:
PdfOptions options = PdfOptions.create();// 中文字體處理options.fontProvider(new IFontProvider() {@Overridepublic Font getFont(String familyName, String encoding, float size, int style, java.awt.Color color) {try {BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font fontChinese = new Font(bfChinese, 12, style, color);if (familyName != null)fontChinese.setFamily(familyName);return fontChinese;} catch (Exception e) {e.printStackTrace();return null;}}});PdfConverter.getInstance().convert(doc, targetStream, options);更改后代碼 親測可行
PdfOptions options = PdfOptions.create();// 中文字體處理options.fontProvider(new IFontProvider() {@Overridepublic Font getFont(String familyName, String encoding, float size, int style, java.awt.Color color) {try {BaseFont bfChinese = BaseFont.createFont("simsun.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font fontChinese = new Font(bfChinese, 12, style, color);if (familyName != null)fontChinese.setFamily(familyName);return fontChinese;} catch (Exception e) {e.printStackTrace();return null;}}});PdfConverter.getInstance().convert(document, out, options);注意:
字體需要自己下載 放在項目的resources內(nèi)
總結(jié)
以上是生活随笔為你收集整理的com.lowagie.text.DocumentException: Font ‘STSong-Light‘ with ‘UniGB-UCS2-H‘的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。