org.artofsolving.jodconverter api未在wicket 8应用程序中将excel文件转换为pdf文件

mwg9r5ms  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(291)

我正试图在wicket8应用程序中使用以下api将excel文件转换成pdf文件。但是pdf文件没有转换成excel文件,我在pdf下载链接上得到的是相同的excel文件,而不是pdf文件,convert()方法没有异常或错误。

<dependency>
    <groupId>net.sf.jodconverter</groupId>
    <artifactId>jodconverter</artifactId>
    <version>3.0-beta-4</version>
</dependency>

<dependency>
    <groupId>com.artofsolving</groupId>
    <artifactId>jodconverter</artifactId>
    <version>2.2.1</version>
</dependency>

使用下面的代码将excel文件转换为pdf文件

public File convertToPDFFile(ByteArrayOutputStream fromExcelFile, String sheetName, OOConfig ooConfig, FileFormat fileFormat) throws Exception {
    File tempFile = null;
    File resultPDFFile = null;
    try {
        tempFile = File.createTempFile(sheetName, fileFormat.getFileExtension());
        tempFile.setWritable(true);

        FileOutputStream fout = new FileOutputStream(tempFile);
        fromExcelFile.writeTo(fout);

        ExternalOfficeManagerConfiguration eomcTest = new ExternalOfficeManagerConfiguration();
        eomcTest.setConnectOnStart(true);
        eomcTest.setConnectionProtocol("SOCKET");
        eomcTest.setPortNumber(8100);

        OfficeManager officeManager = eomcTest.buildOfficeManager();
        officeManager.start();
        OfficeDocumentConverter officeDocConverter = new OfficeDocumentConverter(officeManager);
        resultPDFFile = File.createTempFile(sheetName, TypeOfFile.PDF.getFileExtension());
        officeDocConverter.convert(tempFile, resultPDFFile);
        fout.close();
        officeManager.stop();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (tempFile != null) {
            tempFile.delete();
            tempFile = null;
        }
    }
    return resultPDFFile;
}

请任何人让我知道为什么jodconverter不转换成pdf文件的excel文件。
任何建议都是值得赞赏的。

oxiaedzo

oxiaedzo1#

在本地系统中进行了更深入的调试之后,上面的代码对我起了作用。
为此,需要安装openoffice3或版本4并可以运行下面的命令在windows操作系统中作为服务运行openoffice。
转到cmd并导航到openoffice program dir path:example:“c:\openoffice.org 3\program”和cmd中的以下命令以将openoffice作为服务运行,以运行jodconverter代码进行文件转换。

start soffice -headless -accept=socket,host=0,port=8100;urp;

这有助于在windows操作系统的本地系统中将openoffice作为服务器运行,并且可以更深入地调试此代码以解决任何问题或进行任何更改。
我希望它能帮助那些想在本地系统中为您的openoffice应用程序执行此代码的人。

相关问题