我想使用documents4j将Excel文件转换为PDF,但有两个问题:
我该如何解决这个问题?以下是重现问题的代码:
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();
}
答案 0 :(得分:0)
MS Excel不一定用于程序化转换。因此,可能会出现奇怪的问题。首先:您是否尝试通过直接使用MS Excel将文件转换为PDF?如果问题也出现在那里,则documents4j无能为力。
除此之外,可能还有成功导出所需的报表选项集。您可以查看文档4j运行的VBS脚本以触发Excel转换: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
,触发给定文件的to-PDF转换。您可以通过运行excel_stop.vbs
进行清理。完成后。
您感兴趣的两个参数是:
excelApplication.Workbooks.Open(inputFile, , True, , , , , , , , , , , , 2)
和
excelDocument.ExportAsFixedFormat xlTypePDF, outputFile
您可以调整以使转换运行。我只测试了标准的Excel文件,它在我的单元测试中运行良好。如果您找到适合您的解决方案,我很乐意合并您的更改。方法(ExportAsFixedFormat
和Open
)记录在MSDN上。