如何在TCPDF中指定印刷出血(Bleed)以满足专业印刷需求?
用TCPDF生成带印刷出血的A5 PDF
需求背景
印刷商要求PDF包含3mm的出血:常规A5成品尺寸为148×210mm,带出血的总页面尺寸需设为154×216mm(每边额外加3mm)。当前TCPDF设置如下:
$pdf = new \TCPDF( orientation: 'P', unit: 'mm', format: 'A5', pdfa: 1 // PDF-A1 ); $pdf->SetMargins( left: 9, top: 9, right: 9 ); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(true); $pdf->setFooterMargin(9);
希望通过TCPDF支持的MediaBox、CropBox、BleedBox、TrimBox等参数配置,无需手动计算总尺寸,实现带9mm内边距+每边3mm出血的A5页面。
解决方案
完全可以通过自定义页面格式数组实现,先明确各个Box的作用:
- MediaBox:PDF的实际物理尺寸(包含出血的总尺寸)
- TrimBox:成品页面的最终尺寸(标准A5的148×210mm)
- BleedBox:出血区域范围,印刷商会据此裁剪
- CropBox:显示/打印时的可见区域,通常与TrimBox一致
修改后的代码如下:
// 定义标准A5成品尺寸与出血宽度 $trimWidth = 148; $trimHeight = 210; $bleed = 3; // 构建自定义页面格式数组 $customFormat = [ 'MediaBox' => [0, 0, $trimWidth + 2*$bleed, $trimHeight + 2*$bleed], 'TrimBox' => [$bleed, $bleed, $trimWidth + $bleed, $trimHeight + $bleed], 'BleedBox' => [$bleed, $bleed, $trimWidth + $bleed, $trimHeight + $bleed], 'CropBox' => [$bleed, $bleed, $trimWidth + $bleed, $trimHeight + $bleed], 'orientation' => 'P', 'unit' => 'mm' ]; // 初始化TCPDF,使用自定义格式 $pdf = new \TCPDF( orientation: 'P', unit: 'mm', format: $customFormat, pdfa: 1 // PDF-A1 ); // 设置内边距:基于TrimBox(成品区域)计算 $pdf->SetMargins( left: 9, top: 9, right: 9 ); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(true); $pdf->setFooterMargin(9);
关键说明
- MediaBox:设置为154×216mm(148+3×2,210+3×2),是包含出血的总尺寸
- TrimBox:从左上角偏移3mm开始,框出标准A5的成品区域,确保印刷后的最终尺寸正确
- BleedBox和CropBox:与TrimBox对齐,明确告知印刷商出血范围和可见区域
- 内边距设置:
SetMargins的9mm是相对于TrimBox(成品区域)的内边距,无需手动调整出血的影响
这样设置后,印刷商能正确识别出血区域,同时你无需手动计算带出血的尺寸,直接基于标准A5参数配置即可。
内容的提问来源于stack exchange,提问作者stollr
相关产品推荐
相关产品推荐

