バージョン情報
jdk 17
LibreOffice v4.6.1
jodconverter-local v4.4.6
jodconverter-localを用いてwordファイルをpdfに変換するときに次のエラーが出ました。
ERROR [2023-09-08 16:23:47,615] org.jodconverter.local.task.LocalConversionTask: Local conversion failed.
! com.sun.star.uno.RuntimeException:
! at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:173)
! at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:139)
! at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:334)
! at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:303)
! at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:87)
! at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:636)
! at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:146)
! at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:128)
! at jdk.proxy2/jdk.proxy2.$Proxy144.gotoRange(Unknown Source)
! at org.jodconverter.local.filter.PagesSelectorFilter.selectTextPages(PagesSelectorFilter.java:226)
! at org.jodconverter.local.filter.PagesSelectorFilter.doFilter(PagesSelectorFilter.java:112)
! at org.jodconverter.local.filter.AbstractFilterChain.doFilter(AbstractFilterChain.java:110)
! ... 10 common frames omitted
! Causing: org.jodconverter.core.office.OfficeException: Could not apply filter org.jodconverter.local.filter.PagesSelectorFilter.
! at org.jodconverter.local.filter.AbstractFilterChain.doFilter(AbstractFilterChain.java:114)
! at org.jodconverter.local.filter.AbstractFilterChain.doFilter(AbstractFilterChain.java:91)
! at org.jodconverter.local.filter.DefaultFilterChain.doFilter(DefaultFilterChain.java:98)
! at org.jodconverter.local.task.LocalConversionTask.modifyDocument(LocalConversionTask.java:167)
! at org.jodconverter.local.task.LocalConversionTask.execute(LocalConversionTask.java:118)
! at org.jodconverter.local.office.LocalOfficeManagerPoolEntry.doExecute(LocalOfficeManagerPoolEntry.java:120)
! at org.jodconverter.core.office.AbstractOfficeManagerPoolEntry.lambda$execute$0(AbstractOfficeManagerPoolEntry.java:80)
! at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
! at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
! at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
! at java.base/java.lang.Thread.run(Thread.java:833)
実装コードでは変換後に出力するページをPageSelectorFilterを使って指定していました。
(次のページの最初のコードブロックにある書き方)
変換元のwordファイルと失敗したときの状況を見比べると、PageSelectorFilterで指定したページの最後で表の途中で改ページされているときにこのエラーが発生しているようでした。
更に詳しい原因まではわからなかったのですが、出力するページを指定する書き方を、上記のページの最後のコードブロックにあるようにcustomPropertiesを使ったものに変更することで解消しました。
変換先ファイルの形式がPDFだけならこちらの方が推奨されているようです。