記事の 1 つで、.NET 開発者としてドキュメント内の単語を編集する方法 について説明しました。この戦略は、機密コンテンツを消去したり、電子メール アドレスや ID 番号などの個人情報を隠したり削除したりするために、さまざまな方法で使用されます。この記事では、Java で Word DOC/DOCX ドキュメント内の単語検索を実行する方法について説明します。テキスト、単語、またはフレーズを見つけて、Java API を使用して編集するさまざまな手法で置き換える方法については、個別に説明します。

以下のトピックについて説明します。

単語の検索とテキストの置換のための Java API

GroupDocs は、Java redaction API を提供します。これにより、MS Word でサポートされているファイルやその他のさまざまなファイル形式のドキュメントのコンテンツを検索および置換できます。テキストのリダクションとラスタライズに加えて、API はメタデータ、注釈、スプレッドシート、および画像のリダクション機能もサポートしています。 Word文書、スプレッドシート、プレゼンテーション、画像、PDF文書のサポートされているファイル形式は、ドキュメントで入手できます。

ダウンロードまたは構成

ダウンロード セクション から JAR ファイルをダウンロードするか、Maven ベースの Java アプリケーションの pom.xml の最新のリポジトリと依存関係の構成を取得することができます。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

MS Word またはその他のサードパーティ製ソフトウェアは、編集プロセスには必要ありません。それでは、テキストの検索と置換を処理するためのさまざまなアプローチから始めましょう。以下は、以下の例で使用されている Word ドキュメントのスクリーンショットです。ソースコードをほとんど、またはまったく変更せずに、他のドキュメント形式にも同じ方法を使用できます。

テキストを編集するドキュメント

Java を使用して単語またはフレーズを検索して置換する

次の手順では、Java アプリケーション内の Word 文書内の単語/語句を検索して置換する方法について説明します。

  • Redactor クラスを使用して DOC/DOCX ファイルを読み込みます。
  • ExactPhraseRedaction および ReplacementOptions クラスを使用して、正確なフレーズまたは単語を見つけます。
  • リダクションを適用するには、Redactor の apply メソッドを使用します。
  • 変更後にファイルを別の場所に保存するには、出力ストリームを使用します。
  • save メソッドを使用してリダクションの変更を保存します。

次のコードは、Java を使用して、上記の Word 文書内の単語「John Doe」を検索して置き換えます。 「John Doe」のすべての出現を「[censored]」という単語に置き換えます。

// 正確なフレーズを見つけて、Java を使用して他のテキストに置き換えます
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// 編集済みファイルを別の場所に別の名前で保存する場合。
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

コードの出力は次のとおりです。

正確なフレーズを使用して編集する

大文字と小文字を区別する単語の検索と Java でのテキストの置換

単語の正確な大文字と小文字に注意を払っているようで、大文字と小文字を区別する検索にのみ一致する単語のみを置き換えたいと考えています。次のコードは、Java の単語「John Doe」の大文字と小文字の完全一致の存在を置き換えます。

// 正確なフレーズ (大文字と小文字を区別) を検索し、Java を使用して他のテキストに置き換えます
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

コードの出力は次のとおりです。

大文字と小文字を区別するリダクション

Java で正規表現 (RegEx) を使用してテキストを置換する

正確な単語を変更するのではなく、ドキュメントに存在するパターンを変更したい場合は、正規表現を使用できます。次の手順では、Java アプリケーション内で正規表現 (RegEx) を使用してテキストのパターンを検索して置換できます。

  • Redactor クラスを使用してドキュメントを読み込みます。
  • RegexRedaction を使用して正規表現を作成します。
  • ReplacementOptions を使用してテキストを指定し、正規表現の一致を置き換えます。
  • apply メソッドを使用して、すべての正規表現の一致を置き換えます。
  • save メソッドを使用して、秘匿化されたドキュメントを取得します。

次のコードは、RegEx を使用して Word ファイルで単語検索を実行し、Java を使用して他のテキストに置き換える方法を示しています。

// 正規表現を使用してテキストを検索し、Java を使用して他のテキストに置き換えます
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

上記のコードの出力は次のとおりです。

正規表現編集

Java でテキストをカラー ボックスに置き換える

コンテンツを置き換えたくないだけで非表示にしたい場合、API を使用すると、テキスト マッチにボックスを描画してカバーすることができます。次の Java コードは、黒い四角形のボックスでテキストを非表示にします。

// テキストを検索し、Java を使用してその上に長方形を描画して非表示にします
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

上記のコードの出力は次のとおりです。

Box を使用してテキストを非表示にする

無料の API ライセンスを取得する

評価制限なしで API を使用するために、無料の一時ライセンスを取得できます。

結論

要約すると、単語検索を実行して、正確なテキスト フレーズ検索、大文字と小文字を区別する検索、正規表現を使用した検索を使用して Word 文書内のテキストを検索する方法を学習しました。これらのさまざまな手法を使用して、MS Word ドキュメント内のさまざまな方法で検出結果を置き換えることができます。

API の詳細と学習については、ドキュメント を参照してください。質問がある場合は、フォーラム からお問い合わせください。

関連項目