返回

TCPDF 中如何轻松指定出血范围?

php

在 TCPDF 中轻松指定出血范围

作为一名程序员,我经常需要处理 PDF 文件,而 TCPDF 一直是处理 PDF 文档的首选库。最近,我需要为专业印刷添加出血范围,这让我深入研究了 TCPDF 的出血范围功能。现在,我将分享我在这个过程中的发现和经验,帮助你们轻松解决出血范围问题。

什么是出血范围?

出血范围是指打印时超出页面边缘的区域,用于裁切后形成成品的边缘。专业印刷公司通常要求在 PDF 文件中包含出血范围,以便正确裁切和装订。

TCPDF 中的出血范围设置

TCPDF 允许通过设置 MediaBoxBleedBox 数组来指定出血范围。

  • MediaBox: 表示 PDF 页面的大小,包括出血范围。
  • BleedBox: 表示出血范围,超出 MediaBox 的边缘部分。

设置出血范围的步骤

1. 创建新的 PDF 实例

$pdf = new \TCPDF(
    orientation: 'P',
    unit: 'mm',
    format: 'CUSTOM', // 使用自定义格式
);

2. 定义 MediaBox 和 BleedBox

$mediaBox = [
    'llx' => -3, // MediaBox 左下角的 x 坐标(负值表示左出血)
    'lly' => -3, // MediaBox 左下角的 y 坐标(负值表示下出血)
    'urx' => 154, // MediaBox 右上角的 x 坐标
    'ury' => 216, // MediaBox 右上角的 y 坐标
];

$bleedBox = [
    'llx' => 0, // BleedBox 左下角的 x 坐标
    'lly' => 0, // BleedBox 左下角的 y 坐标
    'urx' => 150, // BleedBox 右上角的 x 坐标
    'ury' => 210, // BleedBox 右上角的 y 坐标
];

3. 设置 MediaBox 和 BleedBox

$pdf->SetPageFormat($mediaBox);
$pdf->SetBleedBox($bleedBox);

4. 设置内边距(去除出血范围)

$pdf->SetMargins(
    left: 9,
    top: 9,
    right: 9,
    bottom: 9
);

5. 示例代码

以下是一个完整的示例代码:

$pdf = new \TCPDF(
    orientation: 'P',
    unit: 'mm',
    format: 'CUSTOM', // 使用自定义格式
);

$mediaBox = [
    'llx' => -3,
    'lly' => -3,
    'urx' => 154,
    'ury' => 216,
];

$bleedBox = [
    'llx' => 0,
    'lly' => 0,
    'urx' => 150,
    'ury' => 210,
];

$pdf->SetPageFormat($mediaBox);
$pdf->SetBleedBox($bleedBox);
$pdf->SetMargins(
    left: 9,
    top: 9,
    right: 9,
    bottom: 9
);

// 其余代码...

注意事项

  • TCPDF 允许使用负值指定出血范围,表示页面边缘之外的出血。
  • MediaBox 必须包含 BleedBox。否则,将出现错误。
  • 确保输出设备支持出血范围功能。

结论

通过这些步骤,你们可以轻松地在 TCPDF 中指定出血范围,从而为专业印刷做好准备。切记仔细设置 MediaBox 和 BleedBox,并确保内边距留出足够的空间来去除出血范围。

常见问题解答

  1. MediaBox 和 BleedBox 之间的区别是什么?

    • MediaBox 表示 PDF 页面的整体大小,包括出血范围,而 BleedBox 表示超出 MediaBox 边缘的出血范围。
  2. 为什么需要负值来指定出血范围?

    • 负值表示出血范围超出页面边缘。
  3. 如果 MediaBox 不包含 BleedBox 会怎样?

    • 会出现错误。MediaBox 必须包含 BleedBox。
  4. 如何设置内边距来去除出血范围?

    • 在设置 MediaBox 和 BleedBox 后,通过 SetMargins() 方法设置内边距,以留出足够的空间去除出血范围。
  5. 确保输出设备支持出血范围功能很重要吗?

    • 是的,非常重要。如果输出设备不支持出血范围,打印时出血范围将被忽略。