java pdfbox2 中文乱码_使用PdfBox实现pdf转图片,解决中文方块乱码等问题
一、引入依賴
org.apache.pdfbox
fontbox
2.0.13
org.apache.pdfbox
pdfbox
2.0.13
二、PDF轉(zhuǎn)PNG代碼
String pdfBase64 = "XXXXX";
PDDocument pdDocument = PDDocument.load(Base64Utils.decodeFromString(pdfBase64));
PDFRenderer renderer = new PDFRenderer(pdDocument);
BufferedImage bufferedImage = renderer.renderImage(0);
ImageIO.write(bufferedImage, "png", new File("xxx.png"));
三、PNG中文方塊亂碼
查看linux服務(wù)器上的字體庫如下。
轉(zhuǎn)換后的PNG如下。
日志中打印出類似這樣的日志(例:Using fallback XXX for CID-keyed font STSong-Light),就說明系統(tǒng)沒有安裝STSong-Light字體,pdfbox使用XXX字體來替代了。如果出現(xiàn)方塊,就說明沒有這種字體,并且替代字體也沒有,日志也有相應(yīng)的其他提示。
四、linux添加字體庫
可以選擇STSong-Light字體,而我這里選擇simsun.ttf字體。
#cd /usr/share/fonts/ // 進(jìn)入系統(tǒng)自帶的字體目錄
#mkdir myfonts // myfonts 是你自己隨便取得文件夾名字,一定要有這一步
#將字體文件拷貝到這個(gè)文件夾下,在cd /usr/share/fonts/目錄下執(zhí)行以下命令
#mkfontscale
#mkfontdir
#fc-cache -fv //更新字體緩存
#fc-list // 查看系統(tǒng)中所有得字體,可用于測試是否安裝字體成功
如果 /usr/share/fonts/ 目錄當(dāng)前用戶沒有權(quán)限,可以在 ~/.fonts/ 目錄下新增字體庫,操作步驟和上面一樣。
注意:一定要?jiǎng)?chuàng)建字體對應(yīng)的文件夾,如果字體直接放在fonts目錄,不會生效。
新增字體之后,可以看到字體庫列表中有如下 宋體 的字樣了。
最終轉(zhuǎn)換后正常的PNG如下。
————————————————
版權(quán)聲明:本文為CSDN博主「胡峻崢」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_22845447/article/details/88386443
總結(jié)
以上是生活随笔為你收集整理的java pdfbox2 中文乱码_使用PdfBox实现pdf转图片,解决中文方块乱码等问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票地址
- 下一篇: 装修心得体会(家装团购实战版)