Skip to content

Document 类

Document 是 TCPDF-Next 的核心入口点。它是一个 final 类,通过 12 个可组合 trait 提供完整的 PDF 生成能力。

创建文档

php
use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::create();

Document 使用私有构造函数 — 必须通过 create() 工厂方法创建。

元数据

php
$pdf->setTitle('文档标题')
    ->setAuthor('作者名称')
    ->setSubject('主题')
    ->setKeywords('PDF, 文档, 关键字')
    ->setCreator('TCPDF-Next');

12 个 Trait

Trait功能
HasMetadata标题、作者、关键字、创建者
HasPages新增/删除/移动页面、边距、页面分组
HasTypography字体、大小、间距、渲染模式
HasColors描边/填充/文字颜色、透明度
HasTextOutputcell、multiCell、text、write、writeHtml
HasDrawing线条、矩形、圆形、多边形、箭头
HasTransforms旋转、缩放、平移、镜像
HasLayout页眉/页脚、多栏、小册子模式
HasNavigation书签、目录、链接、附件
HasInteractive表单字段、JavaScript
HasSecurity加密、数字签名
HasOutput保存、浏览器输出、字符串输出

子引擎架构

Document 使用延迟初始化(lazy initialization)— 子引擎只在首次访问时创建:

Document
├── GraphicsEngine (绘图、颜色、变换)
├── TypographyEngine (字体、排版)
├── ContentEngine (文字渲染)
├── LayoutEngine (页面、页眉/页脚)
├── HtmlEngine (HTML/CSS 解析)
├── FormEngine (表单字段)
├── NavigationEngine (书签、链接)
├── BarcodeEngine (条码)
├── SecurityEngine (加密、签章)
├── ArchiveEngine (PDF/A)
└── AccessibilityEngine (标记式 PDF)

这代表生成简单 PDF 时不会载入条码或表单模块,有效节省内存。

查看器偏好设置

php
$pdf->setDisplayMode('fullpage', 'TwoColumnLeft')
    ->setViewerPreferences([
        'HideToolbar' => true,
        'HideMenubar' => true,
        'FitWindow' => true,
    ]);

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