Java用pdfbox或icepdf轉換PDF為圖片時,中文亂碼問題


最近在做一個將PDF文件轉換成圖片文件,然后傳給前端展示的功能。剛開始時是用pdfbox,在本地windows環境下可以正常轉換,圖片沒有任何問題。然后上了linux的測試環境,一樣沒問題。但是上了linux的生產環境之后,傳出來的圖片里面的中文內容就變成亂碼了。

剛開始時以為是pdfBox本身有兼容性問題或者bug,因為在網上也查到資料說pdfBox轉換會有亂碼。后來就換了icePdf,但是結果一樣,本地windows沒問題,linux測試環境沒問題,但生產linux環境出問題了。經過一番網上查資料折騰無果,最后想到,會不會是字庫的問題,因為linux本身其實對中文支持就不是很好。最后,把linux測試環境里面的中文字庫都放到了linux生產環境上面,刷新字庫緩存之后,問題解決!

后來總結了一下,這個問題搞了這么久,有兩個原因,一、對pdf格式文件不夠了解,一開始以為它是和圖片差不多,只是普通的像素組成,沒想到還與字符編碼有關系。2、Java的跨平台特性一直都很好,所以沒有想到這個小問題會與平台本身的環境有關,花了大量時間在代碼的檢查上面。

因為在網上看不到有這種問題的解決辦法,所以特此寫了出來,希望能幫助到更多同行。

 

PS:如果不知道需要裝什么字庫文件,可以用pdf閱讀器打開pdf文件,然后可以看到這個pdf文件里面用到了什么字體,然后再去一一對應的找出來,然后安裝進去就可以了

 

轉載請注明出處:http://www.cnblogs.com/Starshot/p/7481724.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM