Enum リファレンス
NextPDF のオーサリングメソッドのいくつかは、素の文字列や整数ではなく、型付けされた enum を受け取ります。この enum が契約です。引数を固定された有効な集合に制約し、その範囲外の値は IDE と PHPStan が拒否します。このページは、公開 Document と Config API を通じて設定する(あるいは受け取る)enum の、許可値ルックアップです——加えて 1 つのエンジンレベルのカラー enum(RenderingIntent)も含みます。これはそのケースが公開カラー契約の一部であるために含めており、登場箇所ではエンジンレベルである旨を明示します。
これは設定リファレンスの姉妹編です。Config オブジェクト が どのつまみ を回すかを示すのに対し、このページは そのつまみがどの値を受け取るか を示します。各エントリーには、enum の完全修飾クラス名(FQCN)、そのバッキング型、ソースからコピーした正確なケース一覧、そしてそれを受け取る公開メソッドを列挙します。
エンジン内部の深い enum(HTML/CSS レイアウト、抽象構文木、CLI、シェイパー内部)は意図的に除外しています——それらを設定することはありません。以下のほぼすべては、公開 API を通じて渡す値です。唯一の例外である RenderingIntent は、公開セッターを持たないエンジンレベルのカラー enum であり、網羅性のために掲載し、登場箇所でその旨を明記します。
バッキング型
「バッキング型」という見出しのセクションPHP の enum には 2 つの形があり、その形によって値の書き方が変わります。
- バックド(backed) な enum(
enum X: stringまたはenum X: int)は、すべてのケースにスカラーのvalueを持つため、X::from('...')/$case->valueでラウンドトリップできます。ここにある enum のほとんどはバックドです。 - ピュア(pure) な enum(バッキング型のない
enum X)はケースを持ちますが、スカラー値は持ちません。常にケース(X::SomeCase)で参照します。ピュアなのはUnderlineStyleのみです。
どちらの形でも、ケース自体を渡します——たとえば $pdf->addPage(orientation: Orientation::Landscape) のように。バッキング型が問題になるのは、選択をシリアライズしたり、設定から読み戻したりする必要があるときだけです。
ページ設定
「ページ設定」という見出しのセクションOrientation
「Orientation」という見出しのセクションポートレートまたはランドスケープのページ形状。ページを追加するときに渡し、エンジンが幅と高さを入れ替えて合わせます。
| Property | Value |
|---|---|
| FQCN | NextPDF\Contracts\Orientation |
| Backing | string |
| Set via | Document::addPage(?PageSize $size = null, Orientation $orientation = Orientation::Portrait) |
| Case | Backing value |
|---|---|
Portrait | 'P' |
Landscape | 'L' |
use NextPDF\Contracts\Orientation;use NextPDF\ValueObjects\PageSize;
$pdf->addPage(PageSize::a4(), Orientation::Landscape);描画とグラフィックス
「描画とグラフィックス」という見出しのセクションLineCap
「LineCap」という見出しのセクションストロークされた開いたパスがどう終端するか。ISO 32000-2:2020 §8.4.3.3。
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\LineCap |
| Backing | int |
| Set via | LineStyle 設定オブジェクト(new LineStyle(cap: ...))を介し、Document::setLineStyle(LineStyle $style) で適用 |
| Case | Backing value | Meaning |
|---|---|---|
Butt | 0 | 終点で角ばった端、突き出しなし。 |
Round | 1 | 終点で半円の弧。 |
Square | 2 | 終点を線幅の半分だけ越えて伸びる角ばった突き出し。 |
LineJoin
「LineJoin」という見出しのセクションストロークされた 2 つのセグメントが角でどう接続するか。ISO 32000-2:2020 §8.4.3.4。
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\LineJoin |
| Backing | int |
| Set via | LineStyle 設定オブジェクト(new LineStyle(join: ...))を介し、Document::setLineStyle(LineStyle $style) で適用 |
| Case | Backing value | Meaning |
|---|---|---|
Miter | 0 | マイター制限まで伸びた鋭い角。 |
Round | 1 | 外縁を結ぶ円弧。 |
Bevel | 2 | 外縁を結ぶ対角線。 |
LineCap と LineJoin は Document のメソッドに直接渡すものではありません——それらは不変の NextPDF\Graphics\LineStyle 値オブジェクトのフィールドであり、その値オブジェクトを setLineStyle() に渡します。
use NextPDF\Graphics\{LineStyle, LineCap, LineJoin};
$style = new LineStyle(width: 1.5, cap: LineCap::Round, join: LineJoin::Bevel);$pdf->setLineStyle($style);$pdf->line(20, 20, 120, 20);BlendMode
「BlendMode」という見出しのセクション以降の描画に適用される透過ブレンド関数。最初の 12 ケースは分離可能(separable)で、最後の 4 ケースは非分離(non-separable)の HSL モードです。ISO 32000-2:2020 §11.3.5。
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\BlendMode |
| Backing | string |
| Set via | Document::setAlpha(float $alpha, BlendMode $mode = BlendMode::Normal) |
| Case | Backing value | Case | Backing value |
|---|---|---|---|
Normal | 'Normal' | HardLight | 'HardLight' |
Multiply | 'Multiply' | SoftLight | 'SoftLight' |
Screen | 'Screen' | Difference | 'Difference' |
Overlay | 'Overlay' | Exclusion | 'Exclusion' |
Darken | 'Darken' | Hue | 'Hue' |
Lighten | 'Lighten' | Saturation | 'Saturation' |
ColorDodge | 'ColorDodge' | Color | 'Color' |
ColorBurn | 'ColorBurn' | Luminosity | 'Luminosity' |
use NextPDF\Graphics\BlendMode;
$pdf->setAlpha(0.6, BlendMode::Multiply);$pdf->rect(20, 20, 80, 40, 'F');RenderingIntent
「RenderingIntent」という見出しのセクションカラー変換中に、色域外(out-of-gamut)の色をどう再マッピングするか。ri 演算子として出力されます。ISO 32000-2:2020 §8.6.5.8(Table 71)。
このページの他の enum とは異なり、RenderingIntent には 公開 Document または Config セッターがありません ——これは エンジンレベル の enum です。内部の描画エンジン(DrawingEngine::setRenderingIntent())に直接適用され、現在のコンテンツストリームへ ri 演算子を出力します。そのケースが公開カラー契約の一部であるため網羅性のために掲載しますが、このページの残りが扱う開発者向けのオーサリング API の一部ではありません。描画エンジンは、あなたがプログラムする入口ではなく内部クラスとして扱ってください。
| Property | Value |
|---|---|
| FQCN | NextPDF\Graphics\RenderingIntent |
| Backing | string |
| Set via | エンジンレベルのみ——内部の描画エンジンに適用。公開 Document/Config セッターはなし。 |
| Case | Backing value | Meaning |
|---|---|---|
RelativeColorimetric | 'RelativeColorimetric' | 色域内の色を保持し、色域外をクリップ。 |
AbsoluteColorimetric | 'AbsoluteColorimetric' | 用紙の白を含め、測色値を正確に保持。 |
Saturation | 'Saturation' | 色相/輝度を犠牲にして鮮やかな彩度を保持。 |
Perceptual | 'Perceptual' | 視覚的な関係を保持。なめらかな色域圧縮。 |
OutputColorProfile
「OutputColorProfile」という見出しのセクションドキュメントの /OutputIntent に宣言される、作業空間のカラープロファイル。デフォルトの DeviceRGB は従来の「追加の OutputIntent なし」の挙動を保持します。他のいずれかのケースを選択すると、ライターは同梱の ICC プロファイルとともに /GTS_PDFX OutputIntent を出力します(ISO 32000-2:2020 §14.11.5)。これは呼び出しごとのメソッドではなく Config の値です——Document に渡す設定オブジェクト上で設定します。
| Property | Value |
|---|---|
| FQCN | NextPDF\Core\OutputColorProfile |
| Backing | string |
| Set via | Config::withOutputColorProfile(OutputColorProfile $profile)(Config コンストラクターの $outputColorProfile パラメーター) |
| Case | Backing value | Notes |
|---|---|---|
DeviceRGB | 'device-rgb' | デフォルト。追加の OutputIntent は出力されない。 |
Srgb | 'srgb' | 明示的な sRGB OutputIntent(IEC 61966-2-1)。広色域ではない。 |
DisplayP3 | 'display-p3' | Display-P3 広色域(D65)。 |
Rec2020 | 'rec2020' | ITU-R BT.2020 / Rec.2020 広色域。 |
A98RGB | 'a98-rgb' | Adobe RGB 1998。 |
ProphotoRGB | 'prophoto-rgb' | ProPhoto RGB / ROMM RGB(D50)。 |
use NextPDF\Core\{Config, OutputColorProfile};
$config = (new Config())->withOutputColorProfile(OutputColorProfile::DisplayP3);TextRenderingMode
「TextRenderingMode」という見出しのセクショングリフを塗りつぶすか、ストロークするか、クリップするか、不可視でレンダリングするか(不可視モードは検索可能な OCR レイヤーの基盤です)。ISO 32000-2:2020 §9.3.6、Table 104。
| Property | Value |
|---|---|
| FQCN | NextPDF\Content\TextRenderingMode |
| Backing | int |
| Set via | Document::setTextRenderingMode(TextRenderingMode $mode) |
| Case | Backing value | Meaning |
|---|---|---|
Fill | 0 | グリフを塗りつぶす。 |
Stroke | 1 | グリフの輪郭をストロークする。 |
FillStroke | 2 | 塗りつぶしてからストロークする。 |
Invisible | 3 | 不可視でレンダリングする(検索可能な OCR レイヤー)。 |
FillClip | 4 | 塗りつぶし、クリッピングパスに追加する。 |
StrokeClip | 5 | ストロークし、クリッピングパスに追加する。 |
FillStrokeClip | 6 | 塗りつぶし、ストロークし、クリップする。 |
Clip | 7 | クリッピングパスへの追加のみ(可視レンダリングなし)。 |
UnderlineStyle
「UnderlineStyle」という見出しのセクション下線装飾をどう描くか。これはここで唯一の ピュア な enum であるため、常にケースで参照します。
| Property | Value |
|---|---|
| FQCN | NextPDF\Contracts\UnderlineStyle |
| Backing | pure (no backing value) |
| Set via | Document::setUnderlineStyle(UnderlineStyle $style) |
| Case | Meaning |
|---|---|
RectFill | ベースライン下の塗りつぶされた矩形(TCPDF 互換のデフォルト)。 |
StrokeLine | ベースライン下のストロークされた線(セマンティックな線描画)。 |
use NextPDF\Content\TextRenderingMode;use NextPDF\Contracts\UnderlineStyle;
$pdf->setTextRenderingMode(TextRenderingMode::Invisible); // OCR text layer$pdf->setUnderlineStyle(UnderlineStyle::StrokeLine);ConformanceMode
「ConformanceMode」という見出しのセクションドキュメントレベルの適合性契約。ライターが順守すべき ISO のパートと、構造タグ付けが必須かどうか。デフォルトの Plain は制約のない PDF 2.0 出力です。ISO 14289-2:2024(PDF/UA-2)と ISO 19005 の PDF/A 各パート。
| Property | Value |
|---|---|
| FQCN | NextPDF\Conformance\ConformanceMode |
| Backing | string |
| Set via | Document::setConformanceMode(ConformanceMode $mode)(低レベルのエスケープハッチ。Core では PDF/UA-2 に enableTaggedPdf()、PDF/A には enablePdfA()——Premium 限定——を優先) |
| Case | Backing value | Contract |
|---|---|---|
Plain | 'plain' | PDF 2.0、制約なし(デフォルト)。 |
PdfUa1 | 'pdfua1' | ISO 14289-1(Tagged PDF/UA-1)。 |
PdfUa2 | 'pdfua2' | ISO 14289-2:2024(Tagged PDF/UA-2)。 |
PdfA2 | 'pdfa2' | ISO 19005-2(PDF/A-2)。 |
PdfA3 | 'pdfa3' | ISO 19005-3(PDF/A-3 プロファイル判別子)。 |
PdfA3b | 'pdfa3b' | ISO 19005-3 PDF/A-3b(Basic)。 |
PdfA3u | 'pdfa3u' | ISO 19005-3 PDF/A-3u(Unicode 抽出可能)。 |
PdfA4 | 'pdfa4' | ISO 19005-4:2020(PDF/A-4 プロファイル判別子)。 |
PdfA4e | 'pdfa4e' | ISO 19005-4:2020 PDF/A-4e(Engineering)。 |
PdfA4f | 'pdfa4f' | ISO 19005-4:2020 PDF/A-4f(File attachments)。 |
この enum は述語ヘルパー——isTagged()、isAccessibility()、isArchival()、pdfaPart()——を備えているため、ライター側のゲートはモードを再導出するのではなく、モードに基づいて分岐します。
Core のみのビルドが実際に使えるケース。 enum 型はすべてのケースを列挙しますが、ケースが列挙されていることと、その適合性を Core から 生成 できることは同じではありません。
- Core(追加パッケージなし):
Plain、PdfUa1、PdfUa2。Tagged PDF / PDF/UA パスは Core に組み込まれています——enableTaggedPdf()は PDF/UA オーサリングパス(デフォルトでPdfUa2)を選択し、ライセンスチェックなしで構造ツリーを配線します。 - Premium 限定: すべての PDF/A ケース(
PdfA2、PdfA3、PdfA3b、PdfA3u、PdfA4、PdfA4e、PdfA4f)。実際の PDF/A 出力はenablePdfA()によって生成され、これは Premium ティアの機能です(ADR-011)。nextpdf/proパッケージが必要であり、そのパッケージが存在しない場合はInvalidConfigException(“install the nextpdf/pro package”)でフェイルクローズします。
setConformanceMode() は判別子フィールドだけを書き込む低レベルのエスケープハッチです——PDF/A の機構を インストールしません。したがって、Core のみのビルドでこれを通じて PdfA* ケースを設定すると、enablePdfA() が提供するアーカイブ保証を与えずにドキュメントにラベルを付けることになるため、Premium 限定のモードを Core のみのビルドで頼りに してはなりません。実際の適合性パスには enableTaggedPdf() / enablePdfA() を使用し、PDF/A の成果物が必要なときは必ず Premium パッケージに手を伸ばしてください。
use NextPDF\Conformance\ConformanceMode;
$pdf->setConformanceMode(ConformanceMode::PdfUa2);添付ファイル
「添付ファイル」という見出しのセクションAFRelationship
「AFRelationship」という見出しのセクション埋め込まれた関連ファイルに対する /AFRelationship の値。適合しない値は PDF/A-3 および PDF/A-4 の検証に失敗するため、この enum がそれを設定する安全な方法です。ISO 32000-2:2020 §14.13.5(Table 401)。
| Property | Value |
|---|---|
| FQCN | NextPDF\Navigation\AFRelationship |
| Backing | string |
| Set via | Document::embedFile(string $path, string $description = '', AFRelationship|string $afRelationship = AFRelationship::Unspecified) |
| Case | Backing value | Use |
|---|---|---|
Source | 'Source' | PDF が生成された元のソースドキュメント。 |
Data | 'Data' | PDF の派生元の生データ(例: Factur-X / ZUGFeRD XML)。 |
Alternative | 'Alternative' | 代替表現(点字、キャプション、SVG)。 |
Supplement | 'Supplement' | 補足資料。 |
EncryptedPayload | 'EncryptedPayload' | PDF が包む不透明な暗号化ブロブ。 |
FormData | 'FormData' | フォームデータ(XFDF、FDF、XML)。 |
Schema | 'Schema' | Data ファイルを記述するスキーマ(XSD、JSON Schema)。PDF 2.0。 |
Unspecified | 'Unspecified' | 関係を指定しない(デフォルト)。 |
embedFile() は enum ケースまたはその文字列リテラル(先頭スラッシュの有無を問わず)のいずれも受け取るため、AFRelationship::Data と '/Data' は等価です。ケースを渡すのが型安全な選択です。
use NextPDF\Navigation\AFRelationship;
// e-invoice payload: declare the XML as the source data$pdf->embedFile('invoice.xml', 'Factur-X invoice data', AFRelationship::Data);- 設定リファレンス — これらの enum が制約する値を持つ
Configオブジェクト。withOutputColorProfile()を含みます。 - グラフィックスモジュール —
LineStyle、BlendMode、RenderingIntent、そして描画エンジン。 - タイポグラフィモジュール — テキストレンダリングと下線装飾。
- 適合性モジュール —
ConformanceMode判別子と PDF/UA / PDF/A の有効化パス。 - ナビゲーションモジュール — 関連ファイルと
/AF機構。 - リファレンス索引 — API、設定、互換性に関するリファレンス資料の入口。