不要な画像の透かしは、PDF ドキュメントをプロフェッショナルでなく見せ、下流処理を妨げることがあります。GroupDocs.Watermark Cloud SDK for Java は、Java 開発者がプログラムで PDF ファイルから透かしを除去できる堅牢な API を提供します。このガイドでは、SDK の除去エンドポイントを使用して Java で PDF から画像透かしを削除する 方法を示します。最後まで読むと、任意の Java アプリケーションに自動透かし除去を統合できるようになります。

Java 開発環境 - 前提条件とセットアップ

開始する前に、以下のものが揃っていることを確認してください:

  • Java 17 以上がインストールされていること。
  • 依存関係管理のための Maven または Gradle。
  • client IDclient secret を持つ GroupDocs Cloud アカウント。

以下のMaven依存関係を使用してSDKをプロジェクトに追加してください(Gradleの同等も使用できます)。最新のバイナリはダウンロードページで入手できます。

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-watermark-cloud</artifactId>
    <version>23.8</version>
</dependency>

クレデンシャルを使用して API クライアントを初期化します。このスニペットはサンプルコードから直接取得したものです。

ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
WatermarkApi watermarkApi = new WatermarkApi(apiClient);

クライアントが準備できたら、実際の削除ワークフローに進むことができます。

JavaでPDFから画像の透かしを削除するステップバイステップガイド

ステップ 1: ソース ドキュメントの読み込み

まず、クリーンアップしたい PDF を指定します。FileInfo オブジェクトは、API にファイルの場所を伝え、必要に応じてパスワードを提供します。

FileInfo inputFile = new FileInfo();
inputFile.setFilePath("input.pdf");
// inputFile.setPassword("pdfPassword"); // Uncomment if needed

ステップ 2: 画像透かし基準を定義する

削除したい透かし画像を指す ImageSearchCriteria を作成します。これは JavaでPDFから画像の透かしを削除する 操作の核心です。

ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
imageCriteria.setImagePath("watermark.png");

ステップ 3: 削除オプションの設定

ファイル情報と検索条件を RemoveOptions オブジェクトに結合します。また、クリーンアップされた PDF を保存する場所も定義します。

RemoveOptions removeOptions = new RemoveOptions();
removeOptions.setFileInfo(inputFile);
removeOptions.setOutputPath("output.pdf");
removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

ステップ 4: 削除呼び出しの実行

WatermarkApi の remove メソッドを呼び出します。この呼び出しは、処理されたファイルへのパスを含む RemoveResult を返します。

RemoveResult result = watermarkApi.remove(removeOptions);
System.out.println("Watermark removal completed. Output file: " + result.getPath());

ステップ 5: 結果の処理

発生する可能性のある例外を処理してください。SDK はサービス側エラーの場合に ApiException を、予期しない問題の場合に汎用の Exception をスローします。

try {
    // removal code above
} catch (ApiException e) {
    System.err.println("API exception occurred: " + e.getMessage());
} catch (Exception e) {
    System.err.println("Unexpected error: " + e.getMessage());
}

完全なコード例: GroupDocs を使用した画像透かしの削除

次の例は、クライアントの初期化から結果の処理までの完全なワークフローを示しています。

import com.groupdocs.watermark.cloud.api.WatermarkApi;
import com.groupdocs.watermark.cloud.client.ApiClient;
import com.groupdocs.watermark.cloud.client.ApiException;
import com.groupdocs.watermark.cloud.model.FileInfo;
import com.groupdocs.watermark.cloud.model.ImageSearchCriteria;
import com.groupdocs.watermark.cloud.model.RemoveOptions;
import com.groupdocs.watermark.cloud.model.RemoveResult;
import java.util.Collections;

public class RemoveImageWatermarkFromPdf {
    public static void main(String[] args) {
        // Initialize API client with your credentials
        ApiClient apiClient = new ApiClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
        WatermarkApi watermarkApi = new WatermarkApi(apiClient);

// Prepare input file information
        FileInfo inputFile = new FileInfo();
        inputFile.setFilePath("input.pdf");
        // If the PDF is password protected, uncomment the following line and set the password
        // inputFile.setPassword("pdfPassword");

// Define the image watermark to be removed
        ImageSearchCriteria imageCriteria = new ImageSearchCriteria();
        imageCriteria.setImagePath("watermark.png");

// Set up removal options
        RemoveOptions removeOptions = new RemoveOptions();
        removeOptions.setFileInfo(inputFile);
        removeOptions.setOutputPath("output.pdf");
        removeOptions.setSearchCriteria(Collections.singletonList(imageCriteria));

try {
            // Execute removal
            RemoveResult result = watermarkApi.remove(removeOptions);
            System.out.println("Watermark removal completed. Output file: " + result.getPath());
        } catch (ApiException e) {
            System.err.println("API exception occurred: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Unexpected error: " + e.getMessage());
        }
    }
}

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

cURL を使用した REST API による透かし除去操作

純粋なRESTアプローチを好む場合、同じ操作をcURLコマンドで実行できます。

  1. 認証してアクセストークンを取得する
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. ソース PDF をアップロード
curl -X POST "https://api.groupdocs.cloud/v2.0/storage/upload?path=input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@/local/path/input.pdf"
  1. ウォーターマークの削除を実行する
curl -X POST "https://api.groupdocs.cloud/v2.0/watermark/remove" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": {"filePath":"input.pdf"},
           "outputPath":"output.pdf",
           "searchCriteria":[{"type":"Image","imagePath":"watermark.png"}]
         }'
  1. クリーンアップされた PDF をダウンロード
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/download?path=output.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.pdf

完全なリファレンスについては、API ドキュメントをご覧ください。

微調整削除オプション

SDK には、さまざまなシナリオに合わせて調整できる複数のプロパティが用意されています。

  • パスワード保護 - ソース PDF が暗号化されている場合、FileInfo にパスワードを設定します。
  inputFile.setPassword("mySecret");
  • Multiple Search Criteria - 1回の呼び出しで複数の透かしを削除するには、リストにさらに ImageSearchCriteria オブジェクトを追加します。
ImageSearchCriteria logoCriteria = new ImageSearchCriteria();
logoCriteria.setImagePath("logo.png");
removeOptions.setSearchCriteria(Arrays.asList(imageCriteria, logoCriteria));
  • Output Format - デフォルトは PDF ですが、outputPath に別の拡張子(例: output.docx)を設定することで出力形式を変更できます。
  removeOptions.setOutputPath("output.docx");

これらのオプションを使用すると、JavaでPDFから画像の透かしを削除プロセスを正確にニーズに合わせて調整できます。

結論

PDF ファイルから画像透かしをプログラムで削除することは、GroupDocs.Watermark Cloud SDK for Java を使用すれば簡単です。上記の手順に従うことで、任意の Java バックエンドに透かし削除機能を統合でき、暗号化された PDF の処理や柔軟なオプションで操作を微調整することが可能です。製品版の使用には適切なライセンスを取得することを忘れないでください。価格情報は製品ページに掲載されており、一時ライセンスページ から一時ライセンスをリクエストできます。今すぐ PDF のクリーニングを始め、ユーザーに洗練されたドキュメントを提供しましょう。

よくある質問

  • JavaでPDFから画像の透かしを削除するにはどうすればよいですか?
    WatermarkApiremove メソッドを使用し、透かし画像を指す ImageSearchCriteria を指定します。この記事の完全なコード例には正確な手順が示されています。

  • PDFがパスワードで保護されている場合はどうすればよいですか?
    削除 API を呼び出す前に FileInfo オブジェクトにパスワードを設定します(inputFile.setPassword("yourPassword"))。SDK は自動的にファイルを復号化、処理、再暗号化します。

  • 他の形式(例: DOCX)から透かしを削除できますか?
    はい。同じ API は GroupDocs.Watermark がサポートするすべての形式で機能します。filePathoutputPath の拡張子をそれに合わせて変更するだけです。

  • PDF の処理サイズに制限はありますか?
    クラウドサービスはリクエストあたり最大 500 MB のファイルを処理できます。より大きなドキュメントの場合は、処理前に PDF を小さなパーツに分割することを検討してください。

もっと読む