Java 将Excel转换为PDF文档问题4J

Java 将Excel转换为PDF文档问题4J,java,excel,pdf,documents4j,Java,Excel,Pdf,Documents4j,我想使用将Excel文件转换为PDF,但存在两个问题: 转换时,我必须打开一个Excel文件。当我将Word转换为PDF时,我不需要打开doc/docx文件 PDF不包含Excel中包含的图表图像 我如何解决这个问题?以下是重现问题的代码: private void convertExcelToPDF1() throws Exception { InputStream excelFileIS = new BufferedInputStream(new FileInputStream("

我想使用将Excel文件转换为PDF,但存在两个问题:

  • 转换时,我必须打开一个Excel文件。当我将Word转换为PDF时,我不需要打开doc/docx文件
  • PDF不包含Excel中包含的图表图像
  • 我如何解决这个问题?以下是重现问题的代码:

    private void convertExcelToPDF1() throws Exception {
    
        InputStream excelFileIS = new BufferedInputStream(new FileInputStream("C:\\test_convert\\test.xlsx"));
        File target = new File("C:\\test_convert\\sim_status_excel.pdf");
    
        IConverter converter = RemoteConverter.builder()
                           .baseFolder(new File("D:\\temp"))
                           .workerPool(20, 25, 2, TimeUnit.SECONDS)
                           .requestTimeout(10, TimeUnit.SECONDS)
                           .baseUri("http://localhost:9998")
                           .build();
    
        Future<Boolean> conversion = converter.convert(excelFileIS).as(DocumentType.XLSX)
                                        .to(target).as(DocumentType.PDF)
                                        .prioritizeWith(1000)
                                        .schedule();
    }
    
    private void convertExcelToPDF1()引发异常{
    InputStream excelFileIS=新的BufferedInputStream(新文件InputStream(“C:\\test\u convert\\test.xlsx”);
    文件目标=新文件(“C:\\test\u convert\\sim\u status\u excel.pdf”);
    IConverter converter=RemoteConverter.builder()
    .baseFolder(新文件(“D:\\temp”))
    .workerPool(20,25,2,时间单位为秒)
    .requestTimeout(10,时间单位为秒)
    .baseUri(“http://localhost:9998")
    .build();
    未来转换=converter.convert(excelFileIS).as(DocumentType.XLSX)
    .to(target).as(DocumentType.PDF)
    .优先考虑(1000)
    .附表();
    }
    
    MS Excel不一定用于编程转换。因此,可能会出现奇怪的问题。首先:您是否尝试直接使用MS Excel将文件转换为PDF格式?如果问题也发生在那里,documents4j将无能为力

    除此之外,可能还有一些报表选项集是成功导出所必需的。您可以查看documents4j为触发Excel转换而运行的VBS脚本:

    您可以在本地保存这些文件并运行它们。首先,在Windows中从命令行运行
    excel\u start.vbs
    。然后运行
    excel\u convert.vbs input.xls output.pdf 999
    ,这将触发给定文件的到pdf的转换。您可以通过运行
    excel\u stop.vbs
    进行清理。完成后

    您感兴趣的两个参数是:

    excelApplication.Workbooks.Open(inputFile, , True, , , , , , , , , , , , 2)
    


    您可以对其进行调整以运行转换。我只使用标准Excel文件进行测试,这些文件在我的单元测试中运行良好。如果您找到一个适合您的解决方案,我很乐意合并您的更改。方法(和)记录在MSDN上。

    MS Excel不一定用于编程转换。因此,可能会出现奇怪的问题。首先:您是否尝试直接使用MS Excel将文件转换为PDF格式?如果问题也发生在那里,documents4j将无能为力

    除此之外,可能还有一些报表选项集是成功导出所必需的。您可以查看documents4j为触发Excel转换而运行的VBS脚本:

    您可以在本地保存这些文件并运行它们。首先,在Windows中从命令行运行
    excel\u start.vbs
    。然后运行
    excel\u convert.vbs input.xls output.pdf 999
    ,这将触发给定文件的到pdf的转换。您可以通过运行
    excel\u stop.vbs
    进行清理。完成后

    您感兴趣的两个参数是:

    excelApplication.Workbooks.Open(inputFile, , True, , , , , , , , , , , , 2)
    

    您可以对其进行调整以运行转换。我只使用标准Excel文件进行测试,这些文件在我的单元测试中运行良好。如果您找到一个适合您的解决方案,我很乐意合并您的更改。方法(和)记录在MSDN上