處理dependency check 的問題接近尾聲, 大致上能改的只剩下itext
然而itext從5以後都是follow AGPL的協定
AGPL意思是~我的東西全部是開放的, 可使用, 但是不可修改
但是我使用AGPL, 你要使用我的東西, 你也要AGPL
因此商業用途下, 你要碼就跟著我一起開放原始碼
不然~請乖乖付給我business license的費用
如下>我是AGPL, 你要使用, 請在同樣AGPL條件下使用
如下>你如果不想開放原始碼, 請付錢
還好~由於是同一個開發者緣故
他有另外開源一套openpdf提供給大家使用
目前~是還沒有聽說要收費
所以itext還是可以無痛換openodf
原本dependency
修改後dependency
程式碼的部分目前只要改三部分
1 引入套件部分由 com.lowagie. 修改成 com.itextpdf.
2 引入 import com.itextpdf.awt.AsianFontMapper; 改成引入 com.lowagie.text.pdf.AsianFontMapper;
3使用BaseColor類別的部分, 由 RGBColor類別替換
經過這三個步驟, 基本上PDF產出, 是完全順利, 連中文也可以
只是中文部分程式碼會需要這樣寫
BaseFont baseFont = BaseFont.createFont(AsianFontMapper.ChineseTraditionalFont_MHei, AsianFontMapper.ChineseTraditionalEncoding_H, false);
Font mainTitleFont = new Font(baseFont, 16, Font.BOLD, RGBColor.BLACK);
table.addCell(this.genCell("血液透析紀錄表", mainTitleFont, Element.ALIGN_CENTER, 1, 3));
這樣就大功告成~finished!
參考:
https://itextpdf.com/en/how-buy/agpl-license
https://snyk.io/vuln/maven:com.itextpdf%3Aitextpdf
沒有留言:
張貼留言