使用Spire.xls將excel轉為pdf、圖片等,解決中文字體缺失


 

我的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

 


免責聲明!

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



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