JavaでPDFに透かしを追加する必要がある場合、視覚的なオーバーレイは文書を不正使用から保護できます。Conholdate.Total for Javaは、サーバー側でのPDF操作を簡素化する強力なSDKを提供します。このガイドでは、完全な実行可能サンプルを確認し、各行の動作を学び、Maven依存関係を設定し、透明度、回転、配置を微調整するオプションを見つけて、プロフェッショナルな結果を得る方法を紹介します。

完全なコード例: JavaでPDFにテキスト透かしを追加する

次の例は、Conholdate.Total for Java を使用して PDF にテキスト透かしを追加する方法を示しています。

import com.groupdocs.watermark.Watermark;
import com.groupdocs.watermark.options.PdfLoadOptions;
import com.groupdocs.watermark.options.PdfSaveOptions;
import com.groupdocs.watermark.watermarks.TextWatermark;
import com.groupdocs.watermark.watermarks.HorizontalAlignment;
import com.groupdocs.watermark.watermarks.VerticalAlignment;
import java.awt.Color;
import java.awt.Font;

public class AddPdfWatermark {
    public static void main(String[] args) {
        String inputFile = "input.pdf";
        String outputFile = "output.pdf";

// Create a text watermark
        Font font = new Font("Arial", Font.BOLD, 48);
        TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
        textWatermark.setColor(Color.RED);
        textWatermark.setOpacity(0.3);
        textWatermark.setRotationAngle(45);
        textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
        textWatermark.setVerticalAlignment(VerticalAlignment.Center);

// Load options for the source PDF (enable caching for large files)
        PdfLoadOptions loadOptions = new PdfLoadOptions(inputFile);
        loadOptions.setCacheSize(100 * 1024 * 1024); // 100 MB cache

// Initialize the Watermark processor
        Watermark watermark = new Watermark();

try {
            // Apply the watermark to every page of the PDF
            watermark.add(textWatermark, loadOptions);

// Save the watermarked PDF
            PdfSaveOptions saveOptions = new PdfSaveOptions();
            watermark.save(outputFile, saveOptions);
        } catch (Exception e) {
            System.err.println("Failed to add watermark: " + e.getMessage());
            e.printStackTrace();
        }
    }
}

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

JavaコードでPDFに透かしを追加することの理解

Java のコードで PDF に透かしを追加する手順は明確なシーケンスに従っており、任意の PDF ドキュメントに適用できます。

  1. Watermark Processor の初期化 - Watermark watermark = new Watermark(); は透かしを適用するエンジンを作成します。
  2. TextWatermark の作成 - TextWatermark オブジェクトはテキスト、フォント、色、不透明度、回転を保持します。
    Font font = new Font("Arial", Font.BOLD, 48);
    TextWatermark textWatermark = new TextWatermark("CONFIDENTIAL", font);
    
  3. 外観の設定 - setColorsetOpacitysetRotationAngle などのメソッドは、ページ上での透かしの見た目を定義します。
  4. ソース PDF の読み込み - PdfLoadOptions は入力ファイルを読み込み、大きなドキュメント向けにキャッシュを有効にし、メモリ負荷を軽減します。
  5. 適用と保存 - watermark.add(textWatermark, loadOptions); はすべてのページに透かしを適用し、watermark.save(outputFile, saveOptions); は結果を書き出します。

キャッシュを使用したソース PDF の読み込み

マルチメガバイトの PDF を扱う場合、キャッシュを有効にすると SDK がドキュメント全体をメモリに読み込むのを防ぎます。loadOptions.setCacheSize(100 * 1024 * 1024); の行は一時的なストレージとして 100 MB を確保し、必要に応じてページをストリーミングできるようにします。このアプローチは、同時に多数の透かし処理ジョブが実行されるサーバー環境で特に有用です。

詳細な API 情報については、Java API リファレンスをご覧ください。

PDF透かしのための環境設定

JavaでPDFに透かしを追加するワークフローは、Maven依存関係を追加することから始まります。その後、互換性のあるJDKと少量の設定が必要です。

前提条件と Java バージョン

  • Java 8 以上が必要です;SDK は最新の言語機能とストリームを使用します。
  • Maven 3.5+ は依存関係の管理を簡素化します。
  • プロジェクトの pom.xml に Conholdate リポジトリが含まれていることを確認し、Maven がアーティファクトを解決できるようにします。
<repositories>
  <repository>
    <id>conholdate-repo</id>
    <name>Conholdate Maven Repository</name>
    <url>https://repository.conholdate.com/repo/</url>
  </repository>
</repositories>

<dependency>
  <groupId>com.conholdate</groupId>
  <artifactId>conholdate-total</artifactId>
  <version>24.9</version>
  <type>pom</type>
</dependency>

JAR ファイルは、ダウンロードページ から直接取得することもできます。依存関係を追加した後、mvn clean install を実行して、SDK がクラスパスにあることを確認してください。

REST API を使用する(オプション)

言語に依存しないアプローチを好む場合、Conholdate.Total は Java コードを使用せずに透かしを追加できる REST エンドポイントも提供しています。シンプルな curl コマンドは次のようになります:

curl -X POST "https://api.conholdate.com/v1/pdf/watermark" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@input.pdf" \
  -F "text=CONFIDENTIAL" \
  -F "font=Arial" \
  -F "fontSize=48" \
  -F "color=FF0000" \
  -F "opacity=0.3" \
  -F "angle=45" \
  -F "horizontalAlignment=center" \
  -F "verticalAlignment=center" \
  -o output.pdf

REST バージョンは、ロード、構成、適用、保存という同じ論理的手順に従うため、アーキテクチャに最適なアプローチを選択できます。

透かしの外観と位置の設定

SDK は透かしを微調整できる複数のプロパティを提供します。以下は最も頻繁に調整される設定です。

フォントとカラーのカスタマイズ

サーバー上で利用可能な任意の TrueType フォントに、デフォルトの Arial フォントを置き換えることができます。色の変更は、別の java.awt.Color 定数を渡すか、カスタム RGB 値を作成するだけで簡単です。

Font customFont = new Font("Times New Roman", Font.ITALIC, 36);
textWatermark.setColor(new Color(0, 102, 204)); // Deep blue
textWatermark.setFont(customFont);

不透明度と回転の調整

不透明度は透かしの透明度を制御します。値は 0.0(完全に見えない)から 1.0(完全に不透明)までの範囲です。回転を使用するとテキストを傾けることができ、削除が困難になります。

textWatermark.setOpacity(0.45);      // 45% opacity
textWatermark.setRotationAngle(30); // 30 degrees clockwise

ページ上の透かしの配置

水平および垂直の配置プロパティは LeftCenterRightTopCenterBottom を受け入れます。センタリングは機密スタンプで一般的ですが、ブランディング目的で透かしを隅に配置することもできます。

textWatermark.setHorizontalAlignment(HorizontalAlignment.Right);
textWatermark.setVerticalAlignment(VerticalAlignment.Bottom);

各ページで異なるレイアウトで JavaでPDFにテキスト透かしを追加 したい場合、ページを個別に処理するループ内でこれらのプロパティを変更できます。SDKは画像透かし、グラデーション塗り、マルチラインテキストもサポートしており、使用ケースでより視覚的な複雑さが必要な場合に対応します。

結論

JavaでPDFに透かしを追加するのは、Conholdate.Total for Java を使用すれば簡単です。SDKはPDFの読み込み、処理、保存を効率的に行い、組み込みキャッシュにより大きなファイルでもスムーズに扱えます。透明度、回転、フォント、色、配置をカスタマイズすることで、無断配布を防止するプロフェッショナルな透かしを作成できます。製品版で使用する際は適切なライセンスを取得することを忘れないでください。暫定ライセンスはtemporary license page からリクエストでき、価格オプションはpricing page で確認できます。コードと設定手順がカバーされたので、JavaアプリケーションにPDF透かし機能を統合する準備が整いました。

よくある質問

Javaで低レベルのPDFコードを書かずに、PDFにウォーターマークを追加するにはどうすればよいですか?
Conholdate.Total for JavaWatermark クラスを使用します。このクラスは PDF の構造を抽象化し、テキスト、フォント、配置などのウォーターマークのプロパティに集中できるようにします。

テキスト透かしのスタイル設定に利用できるオプションは何ですか?
フォント(new Font(...))、サイズ、スタイル(太字、斜体)、色(setColor)、不透明度(setOpacity)、回転(setRotationAngle)、および配置(setHorizontalAlignmentsetVerticalAlignment)を設定できます。これらのオプションは完全なコード例で示されています。

SDKは大きなPDFを効率的に処理できますか?
はい。PdfLoadOptions.setCacheSize を設定することで、ストリーミングとキャッシュが有効になり、マルチメガバイトのPDFのメモリ使用量が削減されます。これにより、JavaでのPDFへのウォーターマーク追加ワークフローがサーバー上でのバッチ処理に適しています。

この例を実行するためにライセンスを購入する必要がありますか?
本番環境での展開にはライセンスが必要です。一時的なライセンスは一時ライセンスページから取得でき、完全な価格情報は価格ページで確認できます。

もっと読む