spire.xls.free库,Excel转PDF
Excel转PDF最方便的库,非常推荐
(choose version) 参考 MVN REPOSITORY
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>5.1.0</version>
</dependency>
loadFromFile方法 (targetFilePath为文件全路径,例如: xxdir/xxName.xlsx)
public void excel2Pdf(String targetFilePath) {
com.spire.xls.Workbook spireWorkbook = new com.spire.xls.Workbook();
spireWorkbook.loadFromFile(targetFilePath);
//设置转换后的PDF页面高宽适应工作表的内容大小
spireWorkbook.getConverterSetting().setSheetFitToPage(true);
// 将 Excel 文件保存为 PDF
spireWorkbook.saveToFile(targetFilePath.replace("xlsx", "pdf"), com.spire.xls.FileFormat.PDF);
}
loadFromStream方法
public void excel2Pdf(MultipartFile file) {
try (InputStream inputStream = file.getInputStream()) {
com.spire.xls.Workbook workbook = new com.spire.xls.Workbook();
workbook.loadFromStream(inputStream);
//设置转换后的PDF页面高宽适应工作表的内容大小
workbook.getConverterSetting().setSheetFitToPage(true);
// 将 Excel 文件保存为 PDF
workbook.saveToFile("C:\\Users\\Administrator\\Desktop\\result.pdf", com.spire.xls.FileFormat.PDF);
log.info("success");
} catch (IOException e) {
log.info("fail");
}
}
其他操作请参考官方文档
bug提示
在初次Excel转PDF时,在Windows电脑上测试可能一切正常,但是服务器上转出来的PDF文件就乱码了,这是因为spireXLS转PDF时,汉字默认使用宋体字体(SimSun),如果服务器的字体不包含该字体那么转出来的PDF就是乱码的,你可能需要复制宋体字体文件(SimSun.ttf)到服务器上。