使用Spire.xls将excel转为pdf、图片等,解决中文字体缺失 |
您所在的位置:网站首页 › excel转为pdf后数字显示不全 › 使用Spire.xls将excel转为pdf、图片等,解决中文字体缺失 |
参考 下载免费版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 |