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)到服务器上。

posted @ 2023-07-10 13:50  Ashe|||^_^  阅读(1400)  评论(1编辑  收藏  举报