これについて少し調査したところ、過去にこれに関連するバグがあったようです。最新バージョンで解決されているかどうかはわかりません。
私はdocxテンプレートを読んで、いくつかの改造を行って出力しています。ビットマップを除くドキュメントのすべての要素を正常にコピーしています。ビットマップに「この画像は現在表示できません」というテキストが含まれているはずの場所にマーカーが表示されます。私はそれをするのにいくつか行きました。
あるドキュメントから別のドキュメントにビットマップをコピーする推奨される方法は何ですか?
次のように画像を取得できます。
リスト piclist = template.getAllPictures();
XWPFPictureData 画像 = (XWPFPictureData)piclist.get(i);
しかし、それを新しいドキュメントにコピーする方法がわかりません。
ファイルから単一のビットマップを追加するテストを試みましたが、このコードはエラーを発生させ、Word への読み込みに失敗する Word 文書を作成します。
InputStream pic = new FileInputStream("filename.gif");
outputDoc.addPictureData(pic, outputDoc.PICTURE_TYPE_GIF);
どんな助けでも大歓迎です。Apache-POI には全般的に非常に感銘を受けました。