首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用documents4j将Excel转换成PDF格式

用documents4j将Excel转换成PDF格式
EN

Stack Overflow用户
提问于 2015-12-16 14:39:18
回答 1查看 2.1K关注 0票数 1

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

  1. 转换时必须打开Excel文件。当我将Word转换为PDF时,我不需要打开doc/docx文件。
  2. PDF不包含Excel中包含的图表图像。

我怎么解决这个问题?下面是再现问题的代码:

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-17 11:00:13

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

除此之外,还可能有使导出成功所需的报表选项集。您可以查看documents4j为触发https://github.com/documents4j/documents4j/tree/master/documents4j-transformer-msoffice/documents4j-transformer-msoffice-excel/src/main/resources转换而运行的VBS脚本:https://github.com/documents4j/documents4j/tree/master/documents4j-transformer-msoffice/documents4j-transformer-msoffice-excel/src/main/resources

您可以在本地保存这些文件并运行它们。首先,从Windows中的命令行运行excel_start.vbs。然后运行excel_convert.vbs input.xls output.pdf 999,这将触发给定文件的到-PDF转换。您可以通过运行excel_stop.vbs来清理。在你做完之后。

您感兴趣的两个参数是:

代码语言:javascript
复制
excelApplication.Workbooks.Open(inputFile, , True, , , , , , , , , , , , 2)

代码语言:javascript
复制
excelDocument.ExportAsFixedFormat xlTypePDF, outputFile

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34314838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档