小冊子排版¶
BookletLayout 實作小冊子拼版(Imposition)——將邏輯頁序重排為實體印刷頁序,使折疊後形成正確的閱讀順序。支援 2-up(單折)與 4-up(雙折)排版,以及出血(bleed)、裁切線(trim marks)與套準標記(registration marks)。
基本小冊子生成¶
use NextPDF\Layout\BookletLayout;
use NextPDF\Layout\BookletConfig;
$booklet = BookletLayout::create();
// 輸入:A4 直向文件(偶數頁)
// 輸出:A3 橫向,每頁拼兩個 A4
$bookletPdf = $booklet->impose(
sourcePdf: $document->finalize(),
config: BookletConfig::create(
signature: 4, // 每帖 4 頁(最常見)
binding: BindingEdge::Left,
bleed: 3.0, // 出血(mm)
),
);
頁序重排規則¶
以 8 頁文件(1-8)為例,2-up 小冊子的頁序重排:
物理頁 1(A3 橫向,左半 + 右半):
左半 = 邏輯頁 8(封底)
右半 = 邏輯頁 1(封面)
物理頁 2(A3 橫向,折疊後為內頁):
左半 = 邏輯頁 2
右半 = 邏輯頁 7
物理頁 3:
左半 = 邏輯頁 6
右半 = 邏輯頁 3
物理頁 4:
左半 = 邏輯頁 4
右半 = 邏輯頁 5
裁切線與套準標記¶
use NextPDF\Layout\PrintMarks;
$bookletPdf = $booklet->impose(
sourcePdf: $pdfBytes,
config: BookletConfig::create(
signature: 4,
printMarks: PrintMarks::create(
trimMarks: true, // 裁切線
bleedMarks: true, // 出血標記
registrationMarks: true, // 套準標記(十字線)
colorBars: true, // 色彩校正條
pageInfo: true, // 頁面資訊文字
),
),
);
裝訂邊設定¶
use NextPDF\Layout\BindingEdge;
// 左裝訂(左至右閱讀語言)
BookletConfig::create(binding: BindingEdge::Left);
// 右裝訂(日文、中文直排等右至左閱讀)
BookletConfig::create(binding: BindingEdge::Right);
// 上裝訂(日曆、翻頁板)
BookletConfig::create(binding: BindingEdge::Top);
爬移補償¶
多帖裝訂中,內層頁面因紙張厚度而產生「爬移」(頁面向裝訂邊偏移)。BookletLayout 可自動計算補償量:
$bookletPdf = $booklet->impose(
sourcePdf: $pdfBytes,
config: BookletConfig::create(
signature: 16,
creepCompensation: CreepCompensation::auto(
paperThickness: 0.1, // 紙張厚度(mm)
),
),
);