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('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');

下一步

以 LGPL-3.0-or-later 许可证发布。