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