文字格式化
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('NotoSansSC', '/path/to/NotoSansSC-Regular.ttf');
$pdf->addFont('NotoSansSC', '/path/to/NotoSansSC-Bold.ttf', style: FontStyle::BOLD);
// 使用自定义字体
$page->addText('使用 Noto Sans 简体中文字体')
->setFont('NotoSansSC', 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('cid0cs', 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');