2022年1月5日 星期三

itext AGPL 問題 及 改套件 openpdf

處理dependency check 的問題接近尾聲, 大致上能改的只剩下itext




上面是有發生問題的套件
而~itext 在五版5.5.12才有解決這方面問題




然而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




沒有留言:

張貼留言

海科面試問題

 1 關於 java中的spring 有ioc和aop可以介紹一下分別是在做什麼嗎? 在Java的Spring框架中,IoC(控制反轉)和AOP(面向切面編程)是兩個非常重要的概念。 1. IoC(控制反轉) IoC是一種設計模式,主要用於改進代碼的可維護性和可測試性。在IoC中...