Skip to content

ページ(HasPages)

ページの追加

php
use Yeeefang\TcpdfNext\Core\Document;
use Yeeefang\TcpdfNext\ValueObjects\PageSize;
use Yeeefang\TcpdfNext\Contracts\Orientation;

$pdf = Document::create()
    ->addPage()                                          // A4 縦向き(デフォルト)
    ->addPage(PageSize::Letter())                        // USレター
    ->addPage(PageSize::A3(), Orientation::Landscape)    // A3 横向き
    ->addPage(PageSize::Legal());                        // USリーガル

ページサイズ

PageSize はファクトリメソッドを持つ final readonly 値オブジェクトです:

ISO 216 Aシリーズ

A0()A1()A2()A3()A4()A5()A6()

ISO 216 Bシリーズ

B0()B1()B2()B3()B4()B5()

北米規格

Letter()Legal()Tabloid()

カスタムサイズ

php
// 幅と高さはポイント単位(1 pt = 1/72 インチ)
$custom = new PageSize(400.0, 600.0, 'custom');

// または名前文字列から
$a4 = PageSize::fromName('A4');

向きの切り替え

php
$landscape = PageSize::A4()->landscape();
$portrait = PageSize::A4()->portrait();

余白

php
use Yeeefang\TcpdfNext\ValueObjects\Margin;

$pdf->setMargins(Margin::symmetric(15.0, 10.0))  // 上下15mm、左右10mm
    ->setLeftMargin(20.0)
    ->setTopMargin(25.0)
    ->setRightMargin(20.0);

ファクトリメソッド:

  • Margin::uniform(10.0) — 全辺10mm
  • Margin::symmetric(15.0, 10.0) — 上下15mm、左右10mm
  • Margin::zero() — 余白なし
  • new Margin(top, right, bottom, left) — 明示的指定

自動改ページ

php
$pdf->setAutoPageBreak(true, 20);  // 下端から20mmで改ページ
$pdf->setAutoPageBreak(false);      // 無効化

有効にすると、ページからはみ出すコンテンツは自動的に addPage() を呼び出します。

位置

php
$pdf->setX(50.0);          // 水平位置を設定
$pdf->setY(100.0);         // 垂直位置を設定
$pdf->setXY(50.0, 100.0);  // 両方を設定

$x = $pdf->getX();
$y = $pdf->getY();
$width = $pdf->getPageWidth();
$height = $pdf->getPageHeight();
$margins = $pdf->getMargins();  // Marginオブジェクトを返す

ページ操作

php
$pdf->movePage(3, 1);   // ページ3を位置1に移動
$pdf->copyPage(2);      // ページ2を複製
$pdf->deletePage(4);    // ページ4を削除

ページグループ

独立したページ番号付け(例:章ごと)のためにページをグループ化します:

php
$pdf->startPageGroup();
$groupPageNo = $pdf->getGroupPageNo();

ページリージョン

コンテンツが避けるべき矩形領域を定義します:

php
$pdf->addPageRegion(10, 10, 50, 50);  // x, y, 幅, 高さ

$regions = $pdf->getPageRegions();
$pdf->removePageRegion(0);
$pdf->setPageRegions($regions);

ページ情報

php
$currentPage = $pdf->getPage();       // 現在のページインデックス
$totalPages = $pdf->getNumPages();    // 総ページ数

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