ドキュメント処理アプリケーションを構築するJavaアプリケーション開発者であるため、Javaアプリケーションで単語ドキュメントを読み取り、これらのドキュメントからプログラムでテキストを抽出する機能を提供することに興味があるかもしれません。 docx4j APIのパワーを活用してdocxファイルを読み取り、Javaアプリケーションからこれらのファイルからテキストを抽出できます。 この記事では、docx4j APIを使用して、テキストの抽出のためにdocxファイルを操作するという目標を達成する方法を示します。

Javaの単語文書からテキストを読んで抽出する方法は?

Docx4J APIを使用してDOCXファイルを作成するためのコードの作成を開始する前に、開発環境でDOCX4J APIを構成する必要があります。まだインストールされていない場合はDocx4J APIを構成していない場合は、DOCX4J APIをインストールする方法に関する記事をご覧ください。

JavaのWord Documentからテキストを抽出

この段階では、開発環境をセットアップし、Wordドキュメントからテキストを抽出するためにDOCX4J APIの使用を開始する準備ができていると仮定します。この目的には、次のサンプルコードを使用できます。コンソールベースのJavaアプリケーションの主な方法に直接コピーして実行できます。

// Load document
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("FileFormat.docx"));
// Load main document part
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
// Extract nodes
String textNodesXPath = "//w:t";
List<Object> textNodes= mainDocumentPart.getJAXBNodesViaXPath(textNodesXPath, true);
// Print text
for (Object obj : textNodes) {
  Text text = (Text) ((JAXBElement) obj).getValue();
  String textValue = text.getValue();
  System.out.println(textValue);
}

このコードの仕組みを見てみましょう。 Wordドキュメントは、 wordprocesingmlpackage を使用してロードされ、 maindocumentPart docx4j APIのクラスを使用してさらに処理されます。ドキュメントがロードされると、テキストノードのリストは、実際のドキュメントを含むMainDocumentPartオブジェクトから取得されます。次に、各テキストノードは、その上を横断することにより、 jaxbelement オブジェクトとして読み取られます。

結論

Javaアプリケーション内からWordドキュメントを使用することは、DOCX4J APIで簡単です。 APIは、基礎となるファイル形式の内部詳細に入ることなく、Javaアプリケーションにドキュメント処理機能を追加するのに役立ちます。 DOCX4J APIを使用したより多くの例については、このブログをフォローしてください。