我的idea使用maven引入依賴沒有成功,只能下載jar包
下載免費版jar包地址:
http://repo.e-iceblue.com/nexus/content/groups/public/e-iceblue/spire.xls.free/
官網教程:
https://www.e-iceblue.cn/spirexlsforjava/spire-xls-for-java-program-guide-content.html
此時兩種方法:
第一種: jar包放在工程里lib文件夾下,然后在pom.xml里配置jar包相對路徑,如下所示
pom.xml中配置jar所在路徑
<dependency>
<groupId>com.spire</groupId>
<artifactId>spire</artifactId>
<version>3.9.2</version>
<scope>system</scope>
<systemPath>${basedir}/lib/spire.xls.free-3.9.2.jar</systemPath>
</dependency>
第二種:使用maven命令,將下載的jar包打進maven本地倉庫里。
在命令行,執行如下命令:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6-11.2.0.3.jar
因為我用的第一種方法,沒用第二種。將我測試用上面命令中的oracle.jar換成剛下載的spire的jar名字即可
代碼:
public class TestPDF { public static void main(String[] args) { //加載Excel文檔 Workbook wb = new Workbook(); wb.loadFromFile("D:\\test.xlsx"); //獲取工作表 Worksheet sheet = wb.getWorksheets().get(0); // Excel轉為圖片 sheet.saveToImage("D:\\ExcelToImg.png"); //Excel中添加圖片 ExcelPicture picture = sheet.getPictures().add(7,2,"D:\\電子章.png"); picture.setHeight(170);//設置圖片高度 picture.setWidth(170);//設置圖片寬度 //保存文檔 wb.saveToFile("D:\\AddImage.xlsx", ExcelVersion.Version2010); //在PDF的一頁上顯示,不會分割 wb.getConverterSetting().setSheetFitToPage(true); //調用方法保存為PDF格式 wb.saveToFile("D:\\ToPDFPic.pdf", FileFormat.PDF); //wb.dispose(); } }
官網教程都有,這里不介紹更多的了

中文字體缺失:
原因:linux環境缺少字體庫引起。程序中導出的字體,在linux中識別不了
解決辦法:
1、檢查字體是否已經安裝:
fc-list
fc-list : lang=zh ---檢查中文字體庫
2、到 C:\windows\fonts 復制對應字體庫,微軟雅黑、宋體、黑體等,各文件后綴可能不一樣,有的為ttf,有的為ttc,不影響使用
3、創建/usr/share/fonts/chinese目錄,上傳剛才復制的字體庫到此目錄,命令:
mkdir /usr/share/fonts/chinese --創建文件夾
chmod -R 777 /usr/share/fonts/chinese --修改字體權限,使root以外的用戶可以使用這些字體:使用777 賦予全部權限
4、建立字體緩存:
mkfontscale //字體擴展 mkfontdir //新增字體目錄 fc-cache -fv //刷新緩存
5、重啟服務,我的是重啟服務后生效
官網的解決文檔如下:

參考:
https://www.e-iceblue.cn/pdf_java_conversion/file-conversion-font-issue.html
https://blog.csdn.net/small_whale/article/details/103768030
