JOD Converter to pdf API 不知道 docx?

JOD Converter to pdf API doesn't know docx?

我知道 jodconverter 已经被废弃了一段时间,但人们仍然将其报告为用于将 docx 转换为 pdf 的工具。我试图让它在我的 Clojure 应用程序中工作以转换一些模板 docx。在命令行中效果很好:

soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
java -jar lib/jodconverter-cli-2.2.2.jar $mydocx ~/temp/mydocxout.pdf

而且效果很好。但是,我似乎无法让我的应用程序正常工作,它在 clojure 中并且正在尝试按照此处的说明进行操作:http://www.artofsolving.com/opensource/jodconverter/guide/scripting-languages.html

我的 REPL 会话如下所示:

my-app.users> (def connection (SocketOpenOfficeConnection.))
        #'my-app.users/connection
my-app.users> connection
        #object[com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection 0x4f3c5073 "com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection@4f3c5073"]
my-app.users> (def connection (SocketOpenOfficeConnection. 8100))
        #'my-app.users/connection
my-app.users> (def registry (DefaultDocumentFormatRegistry.))
        #'my-app.users/registry
my-app.users> (def converter (OpenOfficeDocumentConverter. connection registry))
        #'my-app.users/converter
my-app.users> (def pdf (.getFormatByFileExtension registry "pdf"))
        #'my-app.users/pdf
my-app.users> pdf
        #object[com.artofsolving.jodconverter.DocumentFormat 0x3bd2e41 "com.artofsolving.jodconverter.DocumentFormat@3bd2e41"]
my-app.users> (def pdf-options {"ReduceImageResolution" true 
                                      "MaxImageResolution" 300})
        #'my-app.users/pdf-options
my-app.users> (.setExportOption pdf DocumentFamily/TEXT "FilterData" pdf-options)
        nil
my-app.users> (def input (io/file "resources/docx-templates/titlepage-image.docx"))
        #'my-app.users/input
my-app.users> (def output (io/file "/temp/jodout.pdf"))
        #'my-app.users/output
my-app.users> (.convert converter input output pdf)
IllegalArgumentException unknown document format for file: resources/docx-templates/titlepage-image.docx  com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.guessDocumentFormat (AbstractOpenOfficeDocumentConverter.java:121)
my-app.users> (def docx (.getFormatByFileExtension registry "docx"))
        #'my-app.users/docx
my-app.users> docx
        nil

如您所见,问题出在最后一点:尽管 CLI 运行良好,但出于某种原因它似乎不知道 docx 格式。怎样才能让API也配合得很好?

问题确实出在版本上:Maven没有2.2,虽然JOD转换器网站有。我通过将 2.1 POM 文件复制到 leiningen 自动创建的 2.2 目录并使用新版本信息调整 POM 来创建本地 Maven 存储库。我粘贴了从网站上获得的 2.2 JAR。在那之后,它运行良好,丢失的 类 正常运行。