Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

アノテーション種別リファレンス

JavaにおけるPDFアノテーション種別

v2026.07

PDF Manipulator の addAnnotation() メソッドは、org.jpedal.annotation パッケージ内のクラスのインスタンスを受け取ります。FreeText と Link については、PDF Manipulatorチュートリアル に実例付きで解説があります。このページでは、残りのアノテーション種別のコンストラクタと、それらが受け取るフラグ、キャプション、線端スタイル、アイコンの値について説明します。

各アノテーション種別には、詳細度の異なる複数のコンストラクタがあります。以下の例では、各種別について最もシンプルなコンストラクタを使用しています。より詳細なコンストラクタでは、以下の項目も設定できます。

  • アノテーションフラグ - 後述のアノテーションフラグ を参照してください。
  • 透明度 - strokingAlpha(線・境界線の透明度)と nonStrokingAlpha(塗りつぶしの透明度)を個別に設定でき、0.0(完全透明)から 1.0(完全不透明)の範囲で指定します。
  • タイトルバー - アノテーションのポップアップウィンドウに表示される title テキスト(主に作成者名として使用されます)。

各種別のコンストラクタの完全な一覧については、Annotation Javadoc を参照してください。

機能一覧

  1. JavaにおけるPDFアノテーション種別
  2. アノテーションフラグ
  3. Caret
  4. Circle
  5. Highlight
  6. Ink
  7. Line
  8. PolyLine
  9. Polygon
  10. Square
  11. Squiggly
  12. Stamp
  13. StrikeOut
  14. Text
  15. Underline

アノテーションフラグ

一部のコンストラクタは int flags パラメータを受け取ります。これはPDF仕様に定義されているPDFアノテーションフラグのビットマスクです。ビットマスクを自分で計算する代わりに、静的ヘルパーメソッド Annotation.getFlagsValue() を使って、真偽値からこの値を構築できます。

final int flags = Annotation.getFlagsValue(
        false, // invisible - 未知のアノテーション種別を描画せず、Printが設定されていても印刷しない
        false, // hidden - アノテーションを一切描画せず、操作も禁止する
        true,  // print - Hiddenが設定されていない限り、ページ印刷時にアノテーションを印刷する
        false, // noZoom - ページのズームレベルに合わせてアノテーションの外観を拡縮しない
        false, // noRotate - ページの回転に合わせてアノテーションの外観を回転しない
        false, // noView - 画面上での描画と操作を禁止するが、印刷は許可する
        false, // readOnly - ユーザーがアノテーションを操作できないようにする
        false, // locked - ユーザーがアノテーションを削除・移動・リサイズできないようにする
        false, // toggleNoView - マウスホバー中または選択中にNoViewフラグを反転する
        false  // lockedContents - ユーザーがアノテーションの内容を変更できないようにする
);

フラグを設定する必要がない場合は、flags パラメータを省略した短いコンストラクタを使用してください。

Caret

テキスト内の特定の位置を示すマークで、テキストが挿入された箇所を示すためによく使われます。

final Caret caret = new Caret(new float[] {X1, Y1, X2, Y2}, new float[] {0.0f, 0.0f, 0.0f});

Circle

アノテーションのバウンディングボックス内に内接する楕円です。

final Circle circle = new Circle(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // lineColor
        new float[] {1.0f, 1.0f, 0.0f}, // fillColor
        1.0f,  // strokingAlpha
        1.0f,  // nonStrokingAlpha
        1.0f); // lineWidth

Highlight

1つ以上のテキスト範囲をハイライト表示します。一般的には、蛍光ペンでマークしたかのようにテキストを強調して表示します。

quadPoints は、デフォルトユーザー空間における n 個の四角形の座標を指定する 8 x n 個の数値の配列です。各四角形は、アノテーションの下にあるテキストの単語または連続した単語のグループを囲みます。各四角形の座標は x1 y1 x2 y2 x3 y3 x4 y4 の順で指定し、四角形の4頂点を反時計回りで表します。

final Highlight highlight = new Highlight(new float[] {X1, Y1, X2, Y2},
        new float[] {1.0f, 1.0f, 0.0f}, // color
        new float[] {X1, Y1, X2, Y1, X1, Y2, X2, Y2}); // quadPoints

Ink

1つ以上の非連続パスで構成されるフリーハンドの「落書き」です。ポインティングデバイスで描いた手書きアノテーションを表現するためによく使われます。

inkList は n 個の配列からなる配列で、各内部配列がストロークパスを表します。各内部配列は、デフォルトユーザー空間においてパス上の点を指定する、水平・垂直座標を交互に並べた数値の列です。

final Ink ink = new Ink(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // color
        new float[][] , // inkList, 3点を持つ1つのパス
        1.0f); // lineWidth

Line

単一の直線です。オプションでキャプションや異なるスタイルの線端を設定できます。

line は4つの数値の配列 [x1 y1 x2 y2] で、デフォルトユーザー空間における直線の始点と終点の座標を指定します。

final Line line = new Line(new float[] {X1, Y1, X2, Y2},
        "A caption", // contents(またはnull)
        new float[] {0.0f, 0.0f, 0.0f}, // color
        new float[] {X1, Y1, X2, Y2}); // line

Line には、LineEndingStyle および CaptionPosition 列挙型を使って、直線の始点・終点それぞれに異なる線端スタイルとキャプションの位置を設定できるコンストラクタもあります。

final Line arrowLine = new Line(new float[] {X1, Y1, X2, Y2},
        "A caption", // contents(またはnull)
        new float[] {0.0f, 0.0f, 0.0f}, // color
        new float[] {X1, Y1, X2, Y2}, // line
        LineEndingStyle.NONE,         // startStyle
        LineEndingStyle.OPEN_ARROW,   // endStyle
        new float[] {0.0f, 0.0f, 0.0f}, // endingColor
        CaptionPosition.TOP);         // captionPosition

LineEndingStyle に指定できる値は以下のとおりです。

値説明
SQUARE正方形の線端。
CIRCLE円形の線端。
DIAMONDひし形の線端。
OPEN_ARROW開いた矢印の線端。
CLOSED_ARROW閉じた(塗りつぶされた)矢印の線端。
NONE線端なし。
BUTT線の端にフラットなキャップを付ける(「バットキャップ」とも呼ばれる)。
REVERSE_OPEN_ARROW反転した開き矢印の線端(矢印が線の始点方向を向く)。
REVERSE_CLOSED_ARROW反転した閉じた(塗りつぶされた)矢印の線端。
SLASH線の端にスラッシュに似た短い斜線を付ける。

CaptionPosition に指定できる値は以下のとおりです。

値説明
INLINEキャプションを直線の内側中央に配置する。
TOPキャプションを直線の上に配置する。

最も詳細な Line コンストラクタでは、leaderLength(各端点から延びるリーダー線の長さ)と leaderExtensionLength(リーダー線から180度方向に延びるリーダー線延長部の長さ。0以上の値)も設定できます。

PolyLine

連続した直線セグメントの系列です。Polygon と異なり、最初と最後の頂点は結ばれません。

vertices は各頂点の水平・垂直座標を交互に並べた数値の配列です。

final PolyLine polyLine = new PolyLine(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // lineColor
        new float[] {1.0f, 1.0f, 0.0f}, // fillColor
        new float[] {X1, Y1, X2, Y2, X3, Y3}, // vertices
        1.0f); // lineWidth

PolyLine には、上述の LineEndingStyle 列挙型を使って、直線の始点・終点それぞれに異なる線端スタイルを設定できるコンストラクタもあります。

final PolyLine arrowPolyLine = new PolyLine(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // lineColor
        new float[] {1.0f, 1.0f, 0.0f}, // fillColor
        new float[] {X1, Y1, X2, Y2, X3, Y3}, // vertices
        LineEndingStyle.NONE,       // startStyle
        LineEndingStyle.OPEN_ARROW, // endStyle
        1.0f); // lineWidth

Polygon

閉じた図形を形成する連続した直線セグメントの系列です。

vertices は各頂点の水平・垂直座標を交互に並べた数値の配列です。

final Polygon polygon = new Polygon(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // lineColor
        new float[] {1.0f, 1.0f, 0.0f}, // fillColor
        new float[] {X1, Y1, X2, Y2, X3, Y3}, // vertices
        1.0f); // lineWidth

Square

アノテーションのバウンディングボックス内に内接する長方形です。

final Square square = new Square(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 0.0f}, // lineColor
        new float[] {1.0f, 1.0f, 0.0f}, // fillColor
        1.0f,  // strokingAlpha
        1.0f,  // nonStrokingAlpha
        1.0f); // lineWidth

Squiggly

1つ以上のテキスト範囲の下に表示される波線の下線です。

quadPoints の形式は、上述の Highlight と同じです。

final Squiggly squiggly = new Squiggly(new float[] {X1, Y1, X2, Y2},
        new float[] {1.0f, 0.0f, 0.0f}, // color
        new float[] {X1, Y1, X2, Y1, X1, Y2, X2, Y2}); // quadPoints

Stamp

名前付きのゴム印アイコンを表示します。カスタムアピアランスストリームを設定することで、画像やテキストを表示することもできます(アノテーションの追加 を参照)。

icon には AnnotationIcons の値のいずれかを指定する必要があります。

final Stamp stamp = new Stamp(new float[] {X1, Y1, X2, Y2},
        new float[] {1.0f, 0.0f, 0.0f}, // color
        AnnotationIcons.APPROVED);      // icon

AnnotationIcons が提供するゴム印アイコン名は次のとおりです: APPROVED、EXPERIMENTAL、NOT_APPROVED、AS_IS、EXPIRED、NOT_FOR_PUBLIC_RELEASE、CONFIDENTIAL、FINAL、SOLD、DEPARTMENTAL、FOR_COMMENT、TOP_SECRET、DRAFT、FOR_PUBLIC_RELEASE。

また AnnotationIcons は、Text 付箋アイコン用の名前(COMMENT、KEY、NOTE、HELP、NEW_PARAGRAPH、PARAGRAPH、INSERT)、ファイルの添付 で使用するファイル添付アイコン用の名前(GRAPH、PAPER_CLIP、PUSH_PIN、TAG)、および現在 addAnnotation() が受け付けるアノテーション種別には含まれないSoundアノテーション種別に対応した「サウンドアイコン」ペア(SPEAKER、MIC)も提供しています。

StrikeOut

1つ以上のテキスト範囲に取り消し線を引きます。

quadPoints の形式は、上述の Highlight と同じです。

final StrikeOut strikeOut = new StrikeOut(new float[] {X1, Y1, X2, Y2},
        new float[] {1.0f, 0.0f, 0.0f}, // color
        new float[] {X1, Y1, X2, Y1, X1, Y2, X2, Y2}); // quadPoints

Text

クリックするとテキストを含むポップアップウィンドウが表示される「付箋」アイコンです。

icon には、AnnotationIcons の付箋アイコン用の値のいずれかを指定する必要があります。使用できる値は上述の Stamp に記載されています。

final Text text = new Text(new float[] {X1, Y1, X2, Y2},
        "Some notes", // contents(またはnull)
        new float[] {1.0f, 1.0f, 0.0f}, // color
        AnnotationIcons.COMMENT);       // icon

open(ポップアップウィンドウを最初から開いた状態で表示するかどうか)を設定できるコンストラクタもあります。

final Text openText = new Text(new float[] {X1, Y1, X2, Y2},
        "Some notes", // contents(またはnull)
        new float[] {1.0f, 1.0f, 0.0f}, // color
        true,                    // open
        AnnotationIcons.COMMENT); // icon

Underline

1つ以上のテキスト範囲の下に表示される下線です。

quadPoints の形式は、上述の Highlight と同じです。

final Underline underline = new Underline(new float[] {X1, Y1, X2, Y2},
        new float[] {0.0f, 0.0f, 1.0f}, // color
        new float[] {X1, Y1, X2, Y1, X1, Y2, X2, Y2}); // quadPoints