コメントは、追加情報を提供したり、ドキュメント内の何かに注意を引くために使用されます。コメントされているテキストも役立つ場合があり、他の目的でそれを抽出したい場合があります。この記事では、Spire.Doc for Java を使用して、Word 文書の 2 つのコメントマークの間のテキストを抽出する方法を紹介します。 Spire.Doc for Java をインストールします まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。 <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.doc</artifactId> <version>4.11.8</version> </dependency> </dependencies> Word で 2 つのコメントマークにあるテキストを取得する 開始マーク(CommentMarkStart クラスで表される)と終了マーク(CommentMarkEnd クラスで表される)の間のテキストを取得するには、コメントマークのインデックスを取得する必要があります。これらのインデックスは、段落でマークされているテキストの位置を指定します。以下は、Word 文書で 2 つのコメントマーク内にテキストを入れる詳細な手順です。 Document オブジェクトを作成し、Document.loadFromFile() メソッドを使用してサンプルの Word 文書を読み込みます。 Document.getComments().get() メソッドを使用して最初のコメントを取得します。 コメントの開始マークと終了マークを取得します。 所有者段落で開始マークのインデックスと終了マークのインデックスを取得します。 インデックス間のテキスト範囲を取得してから、TextRage.getText() メソッドを使用してテキスト範囲のテキストを取得します。 Java import com.spire.doc.Document; import com.spire.doc.documents.CommentMark; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.Comment; import com.spire.doc.fields.TextRange; public class GetTextInsideCommentMarkers { public static void main(String[] args) { //Documentオブジェクトを作成する Document doc = new Document(); //サンプルのWord文書をロードする doc.loadFromFile("C:UsersAdministratorDesktopSample.docx"); //最初のコメントを取得する Comment comment = doc.getComments().get(0); //コメントの開始マークと終了マークを取得する Paragraph para = comment.getOwnerParagraph(); CommentMark start = comment.getCommentMarkStart(); CommentMark end = comment.getCommentMarkEnd(); //開始マークのインデックスと終了マークのインデックスをそれぞれ取得する int indexOfStart = para.getChildObjects().indexOf(start); int indexOfEnd = para.getChildObjects().indexOf(end); //文字列変数を宣言する String textMarked = ""; //2つのインデックス間の数値をループする for (int i = indexOfStart + 1; i < indexOfEnd; i++) { if (para.getChildObjects().get(i) instanceof TextRange) { //インデックスで指定されたテキスト範囲を取得する TextRange range = (TextRange) para.getChildObjects().get(i); //テキスト範囲からテキストを取得する textMarked += range.getText(); } } //マークされているテキストを印刷する System.out.println(textMarked); } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。