Javaを使用してWordDOCXを編集する

DOC、DOCX、DOTMなどのすべてのワードプロセッシングドキュメント形式をプログラムで簡単に編集できます。 Java開発者は、JavaアプリケーションでWord文書を編集できます。この記事では、Javaを使用してWord文書を編集する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

Word文書を編集するためのJavaAPI

DOCXファイルの編集には、GroupDocs.Editor for JavaAPIを使用します。ワードプロセッシングドキュメント、Excelシート、またはその他のサポートされている形式のドキュメントをプログラムで編集できます。 APIを使用すると、ドキュメントを読み込んでHTMLに変換できます。編集用の外部UIにHTMLを提供し、操作後にHTMLを元のドキュメントに保存します。

APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加して、以下のコード例を試すことができます。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-editor</artifactId>
        <version>20.11.0</version> 
</dependency>

Javaを使用してWord文書を編集する

以下に説明する簡単な手順に従って、Word文書をプログラムで簡単に編集できます。

  • WordProcessingLoadOptionsを定義します
  • Editorクラスのインスタンスを作成します
  • 入力DOCXファイルへのパスを指定します
  • WordProcessingEditOptionsを定義します
  • edit()メソッドを呼び出して、EditableDocumentオブジェクトを取得します
  • EditableDocumentからドキュメントコンテンツと関連リソースを取得します
  • getEmbeddedHtml()メソッドを呼び出して、ドキュメントを単一のbase64エンコード文字列として取得します
  • replace()メソッドを呼び出してコンテンツを更新する
  • fromMarkup()メソッドを呼び出して、新しいEditableDocumentインスタンスを作成します
  • WordProcessingSaveOptionsを定義します
  • save()メソッドを呼び出して、更新されたファイルを保存します
  • オブジェクトを破棄します

次のコードサンプルは、Javaを使用してDOCXファイルを編集する方法を示しています。

//入力ファイル
String inputFilePath = "C:\\Files\\Sample.docx";

//ロードオプションを使用してドキュメントをロードします
WordProcessingLoadOptions wordLoadOptions = new WordProcessingLoadOptions();
wordLoadOptions.setPassword("some password"); // Password if required
Editor editor = new Editor(inputFilePath, wordLoadOptions);

// 編集オプションを指定する
WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.setEnableLanguageInformation(true);
editOptions.setEnablePagination(true);

//入力ドキュメントを開いて編集します
EditableDocument beforeEdit = editor.edit(editOptions);

//編集可能なドキュメントからドキュメントのコンテンツと関連リソースを取得します
String content = beforeEdit.getContent();
List<IImageResource> images = beforeEdit.getImages();
List<FontResourceBase> fonts = beforeEdit.getFonts();
List<CssText> stylesheets = beforeEdit.getCss();

//ドキュメントを単一のbase64でエンコードされた文字列として取得します。ここで、すべてのリソース(画像、フォントなど)が、メインのテキストコンテンツとともにこの文字列内に埋め込まれます。
String allEmbeddedInsideString = beforeEdit.getEmbeddedHtml();
//コンテンツを編集する
String allEmbeddedInsideStringEdited = allEmbeddedInsideString.replace("Subtitle", "Edited subtitle");

//編集したコンテンツとリソースから新しいEditableDocumentインスタンスを作成します
EditableDocument afterEdit = EditableDocument.fromMarkup(allEmbeddedInsideStringEdited, null);

//出力ドキュメントパス
String outputPath = "C:\\Files\\Sample_output.docx";
//オプションを保存
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
//最後に、パスに保存します
editor.save(afterEdit, outputPath, saveOptions);

//オブジェクトを破棄します
beforeEdit.dispose();
afterEdit.dispose();
editor.dispose();
Javaを使用してWord文書を編集する

Javaを使用してWord文書を編集する

WordprocessingLoadOptionsクラスは、DOC、DOCX、RTF、ODTなどのWord文書をEditorクラスにロードするためのさまざまなオプションを提供します。

  • setPasswordメソッドを使用すると、パスワードで保護されたドキュメントを開くためのパスワードを指定できます。

Editorクラスは、サポートされているすべての形式のドキュメントをロード、編集、および保存するためのメソッドを提供するメインクラスです。

WordProcesingEditOptionsクラスを使用すると、編集するワードプロセッシングドキュメントを開くためのカスタムオプションを指定できます。

  • setEnabledLanguageInformationメソッドは、言語情報を「lang」HTML属性の形式でHTMLマークアップにエクスポートするかどうかを指定します。
  • setEnablePaginationメソッドを使用すると、結果のHTMLドキュメントのページ付けを有効または無効にできます。

EditableDocumentクラスは、ドキュメントを内部的に格納し、HTMLマークアップを生成してリソースを生成するためのメソッドを提供します。

WordProcessingSaveOptionsクラスは、編集後にWord文書を生成および保存するためのカスタムオプションを提供します。

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

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、Javaを使用してWord文書を編集する方法を学びました。 ドキュメントを使用して、JavaAPI用のGroupDocs.Editorについて詳しく知ることができます。あいまいな点がありましたら、フォーラムまでお気軽にお問い合わせください。

関連項目