Word 文書の内容を .ott ファイルのプレースホルダーに挿入しようとしています。これは後で pdf ファイルとして保存されます。次のスタック トレースで例外が発生します。
Caused by: com.sun.star.lang.WrappedTargetException: Can't read contents!
at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:177)
at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:143)
at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:335)
at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:304)
at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:91)
at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:639)
at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151)
at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:133)
問題を引き起こすコードは次のとおりです。
OOoInputStream inputStream = new OOoInputStream(docByteArray);
embedDocPropValues[1] = new PropertyValue();
embedDocPropValues[1].Name = "InputStream";
embedDocPropValues[1].Value = inputStream;
//xcomponent = xcomponentloader.loadComponentFromURL("private:stream", "_blank", 0, props);
iDocumentInsertable.insertDocumentFromURL("private:stream", embedDocPropValues);
ここで、クラス OOoInputStream には次の宣言があります。
public class OOoInputStream extends ByteArrayInputStream implements XInputStream, XSeekable
*.doc をテンプレートに挿入しようとすると実装が動作しますが、*.docx ファイルを使用するとエラーが発生します。
現在、OpenOffice 3.3 と Java 1.5 を使用しています。
誰でも同じ問題を解決するのを手伝ってくれませんか。