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 Letter
    ->addPage(PageSize::A3(), Orientation::Landscape)    // A3 橫向
    ->addPage(PageSize::Legal());                        // US Legal

頁面尺寸

PageSizefinal 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 授權釋出。