Skip to content

Document API

Documentクラス(TcpdfNext\Core\Document)は、PDFドキュメントを作成するための主要なエントリーポイントです。12のトレイトで構成されており、各トレイトが関連するメソッドグループを提供します。すべてのミューテーションメソッドはフルエントチェーン用にstaticを返します。

php
use TcpdfNext\Core\Document;

$pdf = Document::create()
    ->setTitle('Invoice')
    ->addPage()
    ->setFont('Helvetica', size: 12)
    ->cell(width: 0, height: 10, text: 'Hello World')
    ->save('/output/invoice.pdf');

HasMetadata

ドキュメントレベルのメタデータ(タイトル、作成者、件名、キーワード、作成ツール)を設定するメソッド。

setTitle(string $title): static
ドキュメントタイトルを設定します(PDFビューアのタイトルバーとXMP dc:titleに表示されます)。
setAuthor(string $author): static
ドキュメントの作成者を設定します(XMP dc:creator)。
setSubject(string $subject): static
ドキュメントの件名を設定します(XMP dc:description)。
setKeywords(string|array $keywords): static
ドキュメントのキーワードを設定します。カンマ区切りの文字列または文字列の配列を受け取ります。
setCreator(string $creator): static
作成アプリケーション名を設定します(XMP xmp:CreatorTool)。デフォルトは'TCPDF-Next'です。

HasPages

ページの追加、削除、移動、設定を行うメソッド。

addPage(?PageSize $pageSize = null, ?Orientation $orientation = null): static
新しいページを追加します。このページのみデフォルトのページサイズと向きをオプションで上書きできます。
deletePage(int $pageNumber): static
指定された1始まりのインデックスのページを削除します。ページが存在しない場合はOutOfRangeExceptionをスローします。
movePage(int $from, int $to): static
ページを1つの位置から別の位置に移動します。両方のインデックスは1始まりです。
copyPage(int $pageNumber): static
ページを複製し、最後のページの後にコピーを追加します。
setAutoPageBreak(bool $auto, float $margin = 0): static
自動改ページを有効または無効にします。有効にすると、コンテンツが下マージンから指定されたマージン値を引いた位置に達した時に新しいページが追加されます。
setMargins(float $left, float $top, float $right = -1, float $bottom = -1): static
ユーザー単位でページマージンを設定します。rightが-1の場合leftと同じになります。bottomが-1の場合topと同じになります。
setLeftMargin(float $margin): static
左マージンのみを設定します。
setTopMargin(float $margin): static
上マージンのみを設定します。
setRightMargin(float $margin): static
右マージンのみを設定します。
setCellPadding(float $padding): static
ユーザー単位でデフォルトの内部セルパディングを設定します。
setPageSize(PageSize $size): static
新しいページのデフォルトページサイズを設定します。
setOrientation(Orientation $orientation): static
新しいページのデフォルトページ方向を設定します。
pageCount(): int
ドキュメントの総ページ数を返します。
currentPage(): int
現在のページ番号(1始まり)を返します。
setPage(int $pageNumber): static
カーソルを既存のページに移動します。

HasTypography

フォントの選択、サイズ、スペーシング、文字列の計測を行うメソッド。

setFont(string $family, string $style = '', float $size = 0): static
ファミリ名でフォントを選択します。スタイルは''(レギュラー)、'B'(ボールド)、'I'(イタリック)、'BI'を指定できます。サイズ0は現在のサイズを維持します。
setFontSize(float $size): static
フォントサイズをポイント単位で設定します。
setFontSpacing(float $spacing): static
ユーザー単位で追加の文字間隔を設定します。
setFontStretching(float $percent): static
水平フォントスケーリングをパーセントで設定します(100 = 通常)。
getStringWidth(string $text, string $family = '', string $style = '', float $size = 0): float
指定された(または現在の)フォント設定を使用して、ユーザー単位で文字列の幅を計算します。
getCharWidth(string $char): float
ユーザー単位で1文字の幅を返します。
getNumberOfLines(string $text, float $width): int
指定された幅でテキストが占める行数を推定します。

HasColors

描画色、塗りつぶし色、テキスト色をオプションのアルファ透過度付きで設定するメソッド。

setDrawColor(int $r, int $g = -1, int $b = -1): static
ストローク(描画)色を設定します。グレースケールは単一の値、RGBは3つの値を渡します。
setFillColor(int $r, int $g = -1, int $b = -1): static
図形やセル背景の塗りつぶし色を設定します。
setTextColor(int $r, int $g = -1, int $b = -1): static
テキスト色を設定します。
setAlpha(float $alpha, string $blendMode = 'Normal'): static
アルファ透明度(0.0 = 完全透明、1.0 = 完全不透明)とオプションのブレンドモードを設定します。
setDrawColorObject(Color $color): static
Color値オブジェクトを使用してストローク色を設定します(RGB、CMYK、Gray、Spotをサポート)。
setFillColorObject(Color $color): static
Color値オブジェクトを使用して塗りつぶし色を設定します。
setTextColorObject(Color $color): static
Color値オブジェクトを使用してテキスト色を設定します。

HasTextOutput

ページにテキストコンテンツをレンダリングするメソッド。

cell(float $width, float $height = 0, string $text = '', string|int $border = 0, int $ln = 0, Alignment $align = Alignment::Left, bool $fill = false, string $link = ''): static
単一行のセルを出力します。セルには罫線、背景塗りつぶし、およびオプションのハイパーリンクを設定できます。
multiCell(float $width, float $height, string $text, string|int $border = 0, Alignment $align = Alignment::Justified, bool $fill = false, int $maxLines = 0): static
自動改行付きの複数行テキストブロックを出力します。
text(float $x, float $y, string $text): static
正確な座標にテキスト文字列を配置します。改行やセル境界はありません。
write(float $height, string $text, string $link = ''): static
現在の位置からフロー式のテキストを書き込みます。インラインハイパーリンクをサポートします。
writeHtml(string $html, bool $lineBreak = true, bool $fill = false, bool $resetStyles = false, string $align = ''): static
CSSサポート付きでHTML文字列をレンダリングします。一般的なHTMLタグ、テーブル、リスト、インラインスタイルをサポートします。
writeHtmlCell(float $width, float $height, float $x, float $y, string $html, string|int $border = 0, int $ln = 0, bool $fill = false): static
位置指定されたセル内にHTMLをレンダリングします。
ln(float $height = 0): static
改行を挿入します。heightが0の場合、最後に出力されたセルの高さを使用します。

HasDrawing

線、図形、矢印を描画するメソッド。

line(float $x1, float $y1, float $x2, float $y2): static
2点間に直線を描画します。
rect(float $x, float $y, float $w, float $h, string $style = ''): static
矩形を描画します。スタイル:''(ストローク)、'F'(塗りつぶし)、'DF'(ストローク + 塗りつぶし)。
roundedRect(float $x, float $y, float $w, float $h, float $r, string $roundCorner = '1111', string $style = ''): static
角丸矩形を描画します。roundCornerビットマスクでどの角を丸くするかを制御します。
circle(float $x, float $y, float $r, string $style = '', array $angles = [0, 360]): static
中心(x, y)、半径rの円(または円弧)を描画します。
ellipse(float $x, float $y, float $rx, float $ry, float $angle = 0, string $style = ''): static
中心(x, y)、水平半径rx、垂直半径ryの楕円を描画します。
polygon(array $points, string $style = ''): static
[x, y]座標ペアの配列から多角形を描画します。
arrow(float $x1, float $y1, float $x2, float $y2, int $headStyle = 0, float $armSize = 5, int $armAngle = 15): static
矢印付きの線を描画します。
curve(float $x0, float $y0, float $x1, float $y1, float $x2, float $y2, float $x3, float $y3, string $style = ''): static
3次ベジェ曲線を描画します。
setLineWidth(float $width): static
ストローク操作の線幅を設定します。
setLineCap(int $style): static
線端スタイルを設定します:0(バット)、1(ラウンド)、2(スクエア)。
setLineJoin(int $style): static
線結合スタイルを設定します:0(マイター)、1(ラウンド)、2(ベベル)。

HasTransforms

座標系変換(スタックとして保存)のメソッド。

startTransform(): static
現在のグラフィックス状態を保存します。stopTransform()とペアで使用する必要があります。
stopTransform(): static
以前に保存したグラフィックス状態を復元します。
rotate(float $angle, float $x = null, float $y = null): static
点(x, y)を中心として、指定した角度(度)で後続の描画操作を回転します。
scale(float $sx, float $sy, float $x = null, float $y = null): static
後続の描画操作をスケーリングします。100 = 変更なし、200 = 2倍サイズ。
translate(float $tx, float $ty): static
後続の描画操作を(tx, ty)ユーザー単位で平行移動します。
skew(float $angleX, float $angleY, float $x = null, float $y = null): static
指定した角度(度)で後続の描画操作を傾斜させます。
mirror(string $axis, float $x = null, float $y = null): static
指定した軸に沿って後続の描画操作を反転します('H' 水平、'V' 垂直)。

HasLayout

ヘッダー、フッター、カラム、中綴じモードのメソッド。

setHeaderCallback(callable $callback): static
すべてのページの上部で呼び出されるコールバックを登録します。Documentインスタンスを受け取ります。
setFooterCallback(callable $callback): static
すべてのページの下部で呼び出されるコールバックを登録します。Documentインスタンスを受け取ります。
setColumnsArray(array $columns): static
マルチカラムレイアウトを定義します。各エントリは'width'とオプションの'margin'キーを持つ連想配列です。
selectColumn(int $column = 0): static
カーソルを指定されたカラム(0始まり)に移動します。
setBooklet(bool $enable, float $innerMargin = -1, float $outerMargin = -1): static
設定可能な内側と外側のマージンで中綴じモードを有効にします。
setPrintHeader(bool $print): static
後続のページでヘッダーを有効または無効にします。
setPrintFooter(bool $print): static
後続のページでフッターを有効または無効にします。

HasNavigation

ブックマーク、目次、リンク、注釈、ファイル添付のメソッド。

bookmark(string $title, int $level = 0, float $y = -1, int $page = 0, string $style = '', Color $color = null): static
ブックマーク(アウトラインエントリ)を追加します。レベル0が最上位で、より大きな値はネストされた子を作成します。
addTOC(int $page = 0, string $numberFormat = '', string $filler = '.'): static
すべてのブックマークから目次を生成し、指定されたページに挿入します。
addLink(): int
内部リンク先を作成し、その識別子を返します。
setLink(int $linkId, float $y = 0, int $page = -1): static
以前に作成した内部リンクの移動先を設定します。
annotation(float $x, float $y, float $w, float $h, string $text, array $options = []): static
指定された矩形にテキスト注釈を追加します。
addFileAttachment(string $filePath, string $description = '', string $name = ''): static
ドキュメントにファイルを添付します。PDF/A-3関連ファイルをサポートします。

HasInteractive

AcroFormフォームフィールドとJavaScriptのメソッド。

textField(string $name, float $x, float $y, float $w, float $h, array $options = []): static
指定された位置にテキスト入力フィールドを追加します。
checkboxField(string $name, float $x, float $y, float $size = 10, bool $checked = false): static
チェックボックスフィールドを追加します。
radioField(string $name, float $x, float $y, float $size = 10, array $options = []): static
名前付きグループの一部としてラジオボタンフィールドを追加します。
listboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
リストボックス選択フィールドを追加します。
comboboxField(string $name, float $x, float $y, float $w, float $h, array $items, array $options = []): static
ドロップダウンコンボボックスフィールドを追加します。
buttonField(string $name, float $x, float $y, float $w, float $h, string $caption, string $action = ''): static
オプションのJavaScriptアクション付きプッシュボタンフィールドを追加します。
includeJS(string $script): static
ドキュメントレベルのJavaScriptアクションを埋め込みます。ドキュメントが開かれた時に実行されます。

HasSecurity

暗号化とデジタル署名のメソッド。

setProtection(array $permissions = [], string $userPassword = '', string $ownerPassword = '', int $mode = 3): static
AES-256(mode 3)でドキュメントを暗号化します。権限:'print'、'copy'、'modify'、'annot-forms'など。
setSignature(string $certFile, string $privateKeyFile, string $password = '', string $extracertsFile = '', int $certType = 2, array $info = []): static
PAdESデジタル署名を適用します。PKCS#12(.p12/.pfx)ファイルにはcertType 2を使用します。

HasOutput

最終PDFをレンダリングするメソッド。

save(string $path): bool
PDFをファイルに書き込みます。成功時にtrueを返します。
output(OutputDestination $destination = OutputDestination::String, string $filename = 'doc.pdf', string $path = ''): string|bool
選択した出力先にPDFをレンダリングします:String(バイナリ返却)、File、Inline(ブラウザ)、またはDownload。
toString(): string
output(OutputDestination::String)の便利なエイリアスです。生のPDFバイナリを返します。

関連項目

LGPL-3.0-or-later ライセンスの下で公開されています。