如何解决documents4j的本地转换器问题

时间:2018-10-12 16:38:33

标签: java

document4j看起来像一个很棒的api,我很想使用它。我只想在Mac(已安装Microsoft Office)上将docx批量转换为pdf。

我已经写了这个,但是我收到了无法解析LocalConverter的错误。我究竟做错了什么?我进口了正确的罐子吗?

package Input;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URISyntaxException;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.concurrent.Future;


import org.xml.sax.SAXException;

import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;

public class TBB {



    public static FileInputStream convert(InputStream docxInputStream) throws FileNotFoundException {   

        FileInputStream inputStream = null;
        try (OutputStream outputStream = new FileOutputStream(new File("/Users/sebastianzeki/mydoc.docx"))) {
            IConverter converter = LocalConverter.builder().build();
            converter
                    .convert(docxInputStream).as(DocumentType.DOCX)
                    .to(outputStream).as(DocumentType.PDF)
                    .prioritizeWith(1000).schedule();
            inputStream = new FileInputStream("/Users/sebastianzeki/mydoc.docx");

        } catch (Exception e) {
            e.getMessage();
        }
        return inputStream;
    }

}

1 个答案:

答案 0 :(得分:0)

documents4j与Mac不兼容。查看您的堆栈跟踪,您会发现类似以下内容的内容:com.documents4j.throwables.ConverterAccessException: Unable to run script: /Applications/Tomcat-9.0.1/temp/1564683313105-0/word_start775650809.vbs Documents4j正在后台运行生成的vbScript。据我所知,mac无法运行vbScript。我必须在服务器上安装装有Word的Windows vm,并使用documents4j远程api调用Windows vm进行转换。