私の目標はApache POIを使用して.docx文書をJavaで処理することです。私はドキュメントからすべてを抽出して新しいものを作成したいが、処理されたドキュメントから選択できる特定のコンテンツのみを作成したい。 これまでのところ、テーブルやテキストでは動作しますが、写真に関する問題があります。通常、私は、このようにそれらを抽出します:Rは、段落から抽出され、タイプXWPFRunのですApache POI XWPF - 実行に画像が含まれていないか確認してください。
List<XWPFPictureData> images = r.getEmbeddedPictures();
。 ここで大きな問題は、この解決策は一部の画像でのみ機能し、画像がWord文書にどのように挿入されるかによって異なります。
実行のXMLコードにアクセスでき、このような画像を見つけようとしましたが、これはpythonでうまく動作し、xpathクエリを指定できます。 Javaで同じことを試みましたが、エラーメッセージが表示されました。
r.getCTR().selectPath(".//w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic/pic:blipFill/a:blip/@r:embed"))
XPathエンジンがないと思われます。あなたのクラスパスを確認しました – gtosto
はい、まさにそうでした。私のプロジェクトにxmlbeans-xpath.jarを追加すると、これが解決されました。 – Phil