Microsoft Word ファイルをリモートで編集することは、共同作業型 Java アプリケーションを構築する際の一般的な課題です。GroupDocs.Editor Cloud SDK for Java は、ファイルの解析を自分で行うことなく、Java で Word ドキュメントを編集できる強力な REST‑ベースのライブラリを提供します。このガイドでは、認証方法、テキストの置換、編集エンドポイントの呼び出し、そして更新された DOCX のダウンロード方法を、明確なコード例とパフォーマンスのヒントとともに学びます。

JavaでWord文書を編集する方法 - ステップバイステップ

  1. クレデンシャルで API クライアントを構成する: Configuration オブジェクトを作成し、clientId、clientSecret、ベース URL を設定し、ApiClient と必要な API をインスタンス化します。
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
config.setBaseUrl("https://api.groupdocs.cloud");

ApiClient apiClient = new ApiClient(config);
EditorApi editorApi = new EditorApi(apiClient);
FilesApi filesApi = new FilesApi(apiClient);
  1. ソースDOCX用のFileInfoを準備する: GroupDocs Cloudストレージに保存されている入力ファイルのパスを定義します。
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("input.docx");
  1. ReplaceText 操作の定義: 置換したいテキストを持つ ReplaceText インスタンスを作成し、リストに追加します。
ReplaceText replace = new ReplaceText();
replace.setOldValue("Hello");
replace.setNewValue("Hi");
List<ReplaceText> replaceList = new ArrayList<>();
replaceList.add(replace);
  1. EditDocumentOptions を構築し editDocument を呼び出す: ファイル情報、編集オプション、出力設定を組み合わせ、editDocument メソッドを呼び出します。これが Java で Word ドキュメントを実際に編集する核心のステップです。
EditOptions editOptions = new EditOptions();
editOptions.setReplaceText(replaceList);

EditDocumentOptions options = new EditDocumentOptions();
options.setFileInfo(fileInfo);
options.setOutputPath("output.docx");
options.setFormat("docx");
options.setEditOptions(editOptions);

EditDocumentRequest editRequest = new EditDocumentRequest(options);
EditDocumentResult editResult = editorApi.editDocument(editRequest);
System.out.println("Document edited. Document ID: " + editResult.getDocumentId());
  1. 編集された DOCX ファイルをダウンロード: FilesApi を使用して、クラウドストレージから編集済みファイルを取得します。
DownloadFileRequest downloadRequest = new DownloadFileRequest("output.docx");
InputStream inputStream = filesApi.downloadFile(downloadRequest);
try (FileOutputStream outputStream = new FileOutputStream("downloaded_output.docx")) {
    byte[] buffer = new byte[8192];
    int bytesRead;
    while ((bytesRead = inputStream.read(buffer)) != -1) {
        outputStream.write(buffer, 0, bytesRead);
    }
    System.out.println("Edited document downloaded as downloaded_output.docx");
}

詳細なクラス情報については、EditorApi リファレンスページをご参照ください。

JavaでWord文書を編集する完全なサンプル

次の例は、GroupDocs.Editor Cloud SDK for Java を使用してテキストを置換することで DOCX ファイルを編集する方法を示しています。

import com.groupdocs.editor.cloud.api.EditorApi;
import com.groupdocs.editor.cloud.api.FilesApi;
import com.groupdocs.editor.cloud.client.ApiClient;
import com.groupdocs.editor.cloud.client.ApiException;
import com.groupdocs.editor.cloud.client.Configuration;
import com.groupdocs.editor.cloud.model.EditDocumentOptions;
import com.groupdocs.editor.cloud.model.EditDocumentResult;
import com.groupdocs.editor.cloud.model.EditOptions;
import com.groupdocs.editor.cloud.model.FileInfo;
import com.groupdocs.editor.cloud.model.ReplaceText;
import com.groupdocs.editor.cloud.model.requests.EditDocumentRequest;
import com.groupdocs.editor.cloud.model.requests.DownloadFileRequest;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class GroupDocsEditorExample {
    public static void main(String[] args) {
        // Configuration – replace with your actual credentials
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        config.setBaseUrl("https://api.groupdocs.cloud");

ApiClient apiClient = new ApiClient(config);
        EditorApi editorApi = new EditorApi(apiClient);
        FilesApi filesApi = new FilesApi(apiClient);

// Input and output file paths in the cloud storage
        String inputPath = "input.docx";
        String outputPath = "output.docx";

try {
            // Prepare file information
            FileInfo fileInfo = new FileInfo();
            fileInfo.setFilePath(inputPath);

// Define replace text operation
            ReplaceText replace = new ReplaceText();
            replace.setOldValue("Hello");
            replace.setNewValue("Hi");
            List<ReplaceText> replaceList = new ArrayList<>();
            replaceList.add(replace);

// Set edit options
            EditOptions editOptions = new EditOptions();
            editOptions.setReplaceText(replaceList);

// Build edit document options
            EditDocumentOptions options = new EditDocumentOptions();
            options.setFileInfo(fileInfo);
            options.setOutputPath(outputPath);
            options.setFormat("docx");
            options.setEditOptions(editOptions);

// Execute edit operation
            EditDocumentRequest editRequest = new EditDocumentRequest(options);
            EditDocumentResult editResult = editorApi.editDocument(editRequest);
            System.out.println("Document edited. Document ID: " + editResult.getDocumentId());

// Download the edited document
            DownloadFileRequest downloadRequest = new DownloadFileRequest(outputPath);
            InputStream inputStream = filesApi.downloadFile(downloadRequest);
            try (FileOutputStream outputStream = new FileOutputStream("downloaded_output.docx")) {
                byte[] buffer = new byte[8192];
                int bytesRead;
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, bytesRead);
                }
                System.out.println("Edited document downloaded as downloaded_output.docx");
            } finally {
                if (inputStream != null) {
                    inputStream.close();
                }
            }
        } catch (ApiException apiEx) {
            System.err.println("API error: " + apiEx.getMessage());
        } catch (IOException ioEx) {
            System.err.println("IO error: " + ioEx.getMessage());
        }
    }
}

注意: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや構成値が実際の環境に合わせて更新されていることを確認し、すべての必須依存関係が正しくインストールされているか検証し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。

cURL を使用した Java の REST で Word ドキュメントを変更する

以下は、Javaコードを書かずに同じテキスト置換操作を実行するcURLワークフローです。迅速なテストや他のサービスとの統合に便利です。

  1. アクセストークンを取得 (プレースホルダーを自分の資格情報に置き換えてください)。
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. ソースDOCXをアップロード してクラウドストレージに。
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@/path/to/local/input.docx"
  1. editDocument エンドポイントを呼び出す 置換操作を定義する JSON ペイロードを使用します。
curl -X POST "https://api.groupdocs.cloud/v2.0/editor/edit/document" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "fileInfo": { "filePath": "input.docx" },
        "outputPath": "output.docx",
        "format": "docx",
        "editOptions": {
            "replaceText": [
                { "oldValue": "Hello", "newValue": "Hi" }
            ]
        }
      }'
  1. 編集されたファイルをダウンロード 操作が成功したら。
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/output.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -o downloaded_output.docx

完全なREST仕様については、APIリファレンスをご覧ください。

GroupDocs.Editor Cloud SDK for Java のインストールと構成

提供された依存関係スニペットを使用して、Maven プロジェクトに SDK を追加します。

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-editor-cloud</artifactId>
    <version>25.7</version>
</dependency>

最新の JAR を ダウンロードページ から取得してください。
Java ランタイムがバージョン 8 以上であること、そして有効な GroupDocs Cloud アカウントとクライアント ID およびシークレットを持っていることを確認してください。

GroupDocs.Editor Cloud SDK for Java の主な機能

  • Full Word Editing - DOCX、DOC、およびODT形式のテキスト、画像、テーブルを置換します。
  • Cloud Storage Integration - GroupDocs Cloudストレージと直接連携し、ローカルファイル処理を不要にします。
  • REST API Powered - すべての操作は安全なHTTP呼び出しで実行され、マイクロサービスアーキテクチャに最適です。
  • Streaming Download - 大きなドキュメントはストリーミングされ、メモリ使用量を抑えます。
  • Extensible Options - EditOptions を使用して編集動作を細かく調整できます(例:テキスト置換、コメント削除)。

詳細については、公式ドキュメントをご参照ください。

ドキュメント編集オプションの構成

EditOptions オブジェクトを使用すると、適用する変更を指定できます。例では replaceText を使用しましたが、コメントの削除やフィールドの更新など、他のアクションも構成できます。

EditOptions editOptions = new EditOptions();
editOptions.setReplaceText(replaceList); // replaceList defined earlier

removeComments や updateFields などの追加オプションは、API リファレンス に記載されています。

REST を使用した Word 編集のパフォーマンスに関する考慮事項

  • Use Streaming: SDKはファイル内容をストリーミングし、大きなDOCXファイルのヒープ使用量を削減します。
  • Batch Replacements: 複数の ReplaceText オブジェクトを単一のリクエストにまとめ、ネットワーク呼び出しの繰り返しを回避します。
  • Keep Files in Cloud: クラウドに保存されたファイル上で直接編集操作を行うことで、巨大なバイナリのアップロード・ダウンロードのオーバーヘッドを防ぎます。
  • Reuse ApiClient: ApiClient を一度だけインスタンス化し、複数の編集操作で再利用して接続プーリングの恩恵を受けます。

結論

JavaでWord文書の編集は、GroupDocs.Editor Cloud SDK for Java を使用するとシンプルになります。ここで示した手順、コード例、cURL ワークフローに従うことで、任意の Java バックエンドサービスに強力な文書編集機能を統合できます。クライアント認証情報を安全に保管し、一時ライセンスページ で一時ライセンスをテストし、ライブ環境に移行する際は本番ライセンスにアップグレードしてください。コーディングを楽しんでください!

よくある質問

  • JavaでREST APIを使用してWord文書を編集するにはどうすればよいですか?
    GroupDocs.Editor Cloud SDK for Java の editDocument エンドポイントを使用します。置換操作を定義した JSON ペイロードを送信すると、サービスは編集された DOCX を返します。

  • Editor APIへの呼び出しを認証する最適な方法は何ですか?
    クライアント ID とクライアント シークレットを使用して Configuration オブジェクトを作成し、SDK に OAuth トークンを自動的に取得させます。詳細については、公式ドキュメント をご覧ください。

  • 1つのリクエストで複数のプレースホルダーを置換できますか?
    はい。EditOptions 内の replaceText リストに複数の ReplaceText エントリを追加してください。SDK はすべての置換を単一の編集呼び出しで処理します。

  • Word ファイルのサイズに上限はありますか?
    クラウドサービスは数百メガバイトまでのファイルを処理できますが、最適なパフォーマンスを得るためにはファイルを 100 MB 未満に保ち、メモリスパイクを防ぐためにストリーミングダウンロードを使用してください。

もっと読む