使用Spire.xls将excel转为pdf、图片等,解决中文字体缺失

您所在的位置:网站首页 excel转为pdf后数字显示不全 使用Spire.xls将excel转为pdf、图片等,解决中文字体缺失

使用Spire.xls将excel转为pdf、图片等,解决中文字体缺失

2023-10-21 07:57| 来源: 网络整理| 查看: 265

参考

下载免费版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所在路径

com.spire spire 3.9.2 system ${basedir}/lib/spire.xls.free-3.9.2.jar

第二种:使用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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3