Skip to content

文字格式化

TCPDF-Next 提供豐富的文字格式化選項,讓您精確控制字型、大小、樣式、顏色與段落排版。本範例涵蓋日常開發中最常用的文字處理技巧。

字型與樣式

基本字型設定

php
<?php

use YeeeFang\TcpdfNext\Document\PdfDocument;
use YeeeFang\TcpdfNext\Document\PageFormat;
use YeeeFang\TcpdfNext\Content\FontStyle;

$pdf = PdfDocument::create()
    ->setPageFormat(PageFormat::A4)
    ->build();

$page = $pdf->addPage();

// 指定字型名稱與大小
$page->addText('Helvetica 14pt 字型')
    ->setPosition(20, 25)
    ->setFont('Helvetica', size: 14);

$page->addText('Times 12pt 字型')
    ->setPosition(20, 40)
    ->setFont('Times', size: 12);

$page->addText('Courier 10pt 等寬字型')
    ->setPosition(20, 55)
    ->setFont('Courier', size: 10);

粗體、斜體與底線

php
// 粗體
$page->addText('粗體文字')
    ->setFont('Helvetica', size: 12, style: FontStyle::BOLD);

// 斜體
$page->addText('斜體文字')
    ->setFont('Helvetica', size: 12, style: FontStyle::ITALIC);

// 底線
$page->addText('底線文字')
    ->setFont('Helvetica', size: 12, style: FontStyle::UNDERLINE);

// 組合樣式:粗體 + 斜體
$page->addText('粗斜體文字')
    ->setFont('Helvetica', size: 12, style: FontStyle::BOLD | FontStyle::ITALIC);

載入自訂字型

php
// 載入 TrueType 字型
$pdf->addFont('NotoSansTC', '/path/to/NotoSansTC-Regular.ttf');
$pdf->addFont('NotoSansTC', '/path/to/NotoSansTC-Bold.ttf', style: FontStyle::BOLD);

// 使用自訂字型
$page->addText('使用 Noto Sans 繁體中文字型')
    ->setFont('NotoSansTC', size: 12);

文字顏色

RGB 與十六進位顏色

php
use YeeeFang\TcpdfNext\Graphics\Color;

// RGB 格式
$page->addText('紅色文字')
    ->setColor(Color::rgb(220, 50, 50));

$page->addText('綠色文字')
    ->setColor(Color::rgb(40, 160, 80));

// 十六進位格式
$page->addText('橙色文字')
    ->setColor(Color::hex('#FF6600'));

$page->addText('紫色文字')
    ->setColor(Color::hex('#8E44AD'));

CMYK 顏色(印刷用途)

php
// CMYK 適合需要精確色彩控制的印刷品
$page->addText('CMYK 洋紅色文字')
    ->setColor(Color::cmyk(0, 100, 0, 0));

段落與多行文字

段落排版

php
// 建立段落,指定寬度後系統自動換行
$page->addParagraph(
    '這是一段較長的文字內容。TCPDF-Next 會根據指定的寬度自動進行換行處理,'
    . '您不需要手動計算何時應該斷行。系統會考慮字元寬度與空白字元,'
    . '在最適當的位置進行分行。'
)
    ->setPosition(20, 80)
    ->setWidth(170)
    ->setFont('Helvetica', size: 11)
    ->setLineHeight(1.5);

文字對齊

php
use YeeeFang\TcpdfNext\Content\Alignment;

// 靠左對齊(預設)
$page->addParagraph('靠左對齊的文字')
    ->setWidth(170)
    ->setAlignment(Alignment::LEFT);

// 置中對齊
$page->addParagraph('置中對齊的文字')
    ->setWidth(170)
    ->setAlignment(Alignment::CENTER);

// 靠右對齊
$page->addParagraph('靠右對齊的文字')
    ->setWidth(170)
    ->setAlignment(Alignment::RIGHT);

// 兩端對齊
$page->addParagraph('兩端對齊會自動調整字間距,讓每行的左右邊緣都對齊。')
    ->setWidth(170)
    ->setAlignment(Alignment::JUSTIFY);

背景色與框線

php
// 帶背景色的文字區塊
$page->addParagraph('帶有淺藍色背景的提示文字')
    ->setPosition(20, 160)
    ->setWidth(170)
    ->setBackgroundColor(Color::hex('#EBF5FB'))
    ->setPadding(8);

// 帶左側框線的重點文字
$page->addParagraph('重點提示:善用格式化可以大幅提升文件的可讀性與專業感。')
    ->setPosition(20, 185)
    ->setWidth(170)
    ->setBackgroundColor(Color::hex('#E8F8F5'))
    ->setBorderLeft(Color::hex('#1ABC9C'), width: 3)
    ->setPadding(8);

多語言支援

php
// 繁體中文
$page->addText('繁體中文:歡迎使用 TCPDF-Next')
    ->setFont('cid0ct', size: 12);

// 日文
$page->addText('日本語:TCPDF-Nextへようこそ')
    ->setFont('cid0jp', size: 12);

// 韓文
$page->addText('한국어: TCPDF-Next에 오신 것을 환영합니다')
    ->setFont('cid0kr', size: 12);

// 阿拉伯文(RTL 支援)
$page->addText('مرحبا بكم في TCPDF-Next')
    ->setFont('aealarabiya', size: 12)
    ->setRTL(true);

完整範例

php
<?php

require_once __DIR__ . '/vendor/autoload.php';

use YeeeFang\TcpdfNext\Document\PdfDocument;
use YeeeFang\TcpdfNext\Document\PageFormat;
use YeeeFang\TcpdfNext\Content\FontStyle;
use YeeeFang\TcpdfNext\Content\Alignment;
use YeeeFang\TcpdfNext\Graphics\Color;

$pdf = PdfDocument::create()
    ->setTitle('文字格式化範例')
    ->setAuthor('TCPDF-Next')
    ->setPageFormat(PageFormat::A4)
    ->build();

$page = $pdf->addPage();

// 標題
$page->addText('文字格式化展示')
    ->setPosition(20, 25)
    ->setFont('Helvetica', size: 24, style: FontStyle::BOLD)
    ->setColor(Color::hex('#2C3E50'))
    ->setAlignment(Alignment::CENTER);

// 分隔線
$page->drawLine(20, 40, 190, 40)
    ->setColor(Color::hex('#3498DB'))
    ->setWidth(0.5);

// 內文段落
$page->addParagraph(
    '這份文件展示了 TCPDF-Next 提供的各種文字格式化功能。'
    . '透過簡潔的 API,您可以精確控制字型、顏色、對齊方式等各項屬性,'
    . '輕鬆建立專業水準的 PDF 文件。'
)
    ->setPosition(20, 48)
    ->setWidth(170)
    ->setFont('Helvetica', size: 11)
    ->setLineHeight(1.5)
    ->setAlignment(Alignment::JUSTIFY);

$pdf->save('text_formatting.pdf');

下一步

以 LGPL-3.0-or-later 授權釋出。