跳轉到

小冊子排版

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)
        ),
    ),
);

參見