カスタムノートや透かしを追加するには、Java アプリケーションで PDF にテキストを追加する必要があることがよくあります。Conholdate.Total for Java は、開発者がプログラムで PDF ファイルを編集できる強力な SDK です。このガイドでは、前提条件、詳細なコード解説、完全なサンプルを順に説明し、既存の PDF にカスタムテキストを簡単にオーバーレイできるようにします。

前提条件とセットアップ

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

  • Java 8 以上がインストールされていること。
  • 依存関係管理のための Maven。
  • IntelliJ IDEA や Eclipse などの IDE。
  • 本番使用のための有効な Conholdate.Total for Java ライセンス(後述のライセンスセクションを参照)。

Conholdate の Maven リポジトリと SDK 依存関係を pom.xml に追加します:

<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>

最新の SDK バイナリはダウンロードページから取得してください。Maven ビルドが成功したら、コーディングを開始する準備が整います。次のセクションでは、PDF をロードしてテキストを挿入する方法を正確に示します。

JavaでPDFにテキストを追加する: ステップバイステップのウォークスルー

以下は各論理ステップの簡潔な概要です。完全なソースコードは後の Complete Code Example セクションで再掲されています。

ステップ 1: PDF を開き、TextBuilder を作成

まず、Document クラスを使用してソース PDF を開き、次にテキストを追加したいページを指す TextBuilder を作成します。

String dataDir = "path/to/your/document/directory/";

// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

DocumentTextBuilder クラスは API リファレンス に記載されています。

ステップ 2: TextParagraph の作成と構成

TextParagraph を作成し、そのレイアウトを構成します:後続行に適用されるインデント、ページ上のテキスト領域を囲む矩形、およびワードラップモード。

// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

ステップ 3: TextFragment を作成し、フォントを構成する

オーバーレイしたいテキストを含む TextFragment を作成し、getTextState() を使用してフォントとフォントサイズを設定します。

// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);

ステップ 4: フラグメントと段落を追加

テキスト フラグメントを段落内の行として追加し、TextBuilder を介して段落をページに追加します。

// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);

ステップ 5: 変更された PDF を保存

最後に、出力パスを構築し、結果のドキュメントを保存します。

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
doc.save(dataDir);

これらの手順で、PDF テキスト挿入ワークフローが完了しました。

完全なコード例: JavaでPDFにテキストを挿入

次の例は、ソースファイルの読み込みから更新された PDF の保存までの全プロセスを示しています。

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

import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;

public class AddTextToPdf {
    public static void main(String[] args) {
        String dataDir = "path/to/your/document/directory/";

// Open document
        Document doc = new Document(dataDir + "Conholdate.pdf");
        TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));

// Create text paragraph
        TextParagraph paragraph = new TextParagraph();
        // Set subsequent lines indent
        paragraph.setSubsequentLinesIndent(20);
        // Specify the location to add TextParagraph
        paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
        // Specify word wrapping mode
        paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);

// Create text fragment
        TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
        fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
        fragment1.getTextState().setFontSize(12);

// Add fragment to paragraph
        paragraph.appendLine(fragment1);
        // Add paragraph
        builder.appendParagraph(paragraph);

dataDir = dataDir + "AddText_out.pdf";

// Save resulting PDF document.
        doc.save(dataDir);
    }
}

Note: このコード例は基本機能を示しています。プロジェクトで使用する前に、dataDir を実際のドキュメントディレクトリ(Conholdate.pdf を含む)に更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。

結論

このチュートリアルでは、Conholdate.Total for Java の堅牢な機能を使用して、Java で PDF にテキストを追加する方法を示しました。ステップバイステップの手順に従うことで、TextBuilderTextParagraph を使用してテキスト段落を確実に作成し、TextFragment でフォントスタイルを制御し、変更されたドキュメントを保存できます。SDK は PDF ページ座標とテキスト描画を内部で処理するため、ビジネスロジックに集中できます。製品版で使用するには適切なライセンスを取得することを忘れないでください。一時ライセンスページ から一時ライセンスを取得するか、価格ページ で価格オプションをご確認ください。これらのツールを使用すれば、カスタムテキストで PDF を強化することが Java アプリケーションの簡単な作業になります。

よくある質問

  • JavaでPDFにテキストを追加する際、既存のコンテンツを上書きしない方法は?
    例に示すように builder.appendParagraph(paragraph) を使用します。TextBuilder は新しい段落を対象ページに追加し、既存のコンテンツを保持します。

  • JavaでPDFにカスタム透かしテキストを追加することは可能ですか?
    はい。同じアプローチが透かしにも適用できます。目的の透かしテキストで TextFragment を作成し、適切なフォントとサイズ(またはテキストステートによる透明度)を設定し、各ページの TextParagraph を通して追加します。

  • 特定の言語で挿入したテキストが正しく表示されない場合はどうすればよいですか?
    必要な文字セットをサポートするフォントを FontRepository.findFont() で選択します。SDK は getTextState() を介して適用されたフォント設定を尊重し、ドキュメント ではさまざまなスクリプトの取り扱いに関するガイダンスが提供されています。

  • 複数のPDFに同じテキストを追加してバッチ処理できますか?
    もちろんです。同じ Document/TextBuilder ロジックを各ファイルで再利用し、ファイルパスのリストを反復するループ内でコードをラップしてください。

もっと読む