跳轉到

檢視器偏好設定

ViewerPreferences 控制 PDF 閱讀器開啟文件時的初始顯示行為,包含頁面版面(單頁/雙頁/連續)、縮放模式、工具列顯示,以及全螢幕模式等。這些設定是「建議」(hint)性質——各個 PDF 閱讀器可能有不同的執行方式。

基本設定

use NextPDF\Writer\ViewerPreferences;
use NextPDF\Writer\PageLayout;
use NextPDF\Writer\PageMode;

$document->viewerPreferences()->set(
    ViewerPreferences::create(
        pageLayout: PageLayout::TwoColumnLeft,  // 雙欄版面(書籍閱讀模式)
        pageMode: PageMode::UseOutlines,        // 開啟時顯示書籤面板
        hideToolbar: false,                     // 顯示工具列
        hideMenubar: false,                     // 顯示選單列
        hideWindowUI: false,                    // 顯示滾動條等 UI
        fitWindow: false,                       // 不自動調整視窗大小
        centerWindow: true,                     // 視窗置中
        displayDocTitle: true,                  // 在標題列顯示文件標題
    ),
);

頁面版面(PageLayout)

use NextPDF\Writer\PageLayout;

PageLayout::SinglePage        // 每次顯示一頁(預設)
PageLayout::OneColumn         // 單欄連續捲動
PageLayout::TwoColumnLeft     // 雙欄,奇數頁在左(書籍,左裝訂)
PageLayout::TwoColumnRight    // 雙欄,奇數頁在右(雜誌,右裝訂)
PageLayout::TwoPageLeft       // 雙頁,奇數頁在左
PageLayout::TwoPageRight      // 雙頁,奇數頁在右

開啟模式(PageMode)

use NextPDF\Writer\PageMode;

PageMode::UseNone             // 不開啟任何面板(預設)
PageMode::UseOutlines         // 開啟書籤(Outlines)面板
PageMode::UseThumbs           // 開啟縮圖(Thumbnails)面板
PageMode::FullScreen          // 全螢幕模式
PageMode::UseOC               // 開啟可選內容(OCG 圖層)面板
PageMode::UseAttachments      // 開啟附件面板

初始頁面設定

// 開啟時跳至特定頁面
$document->viewerPreferences()->setOpenAction(
    destination: Destination::page(pageNumber: 3),
);

// 開啟時以特定縮放顯示
$document->viewerPreferences()->setOpenAction(
    destination: Destination::xyz(
        pageNumber: 1,
        x: null,   // null=保持現有 X
        y: null,   // null=保持現有 Y
        zoom: 1.25, // 125% 縮放
    ),
);

列印設定

$document->viewerPreferences()->setPrintPreferences(
    PrintPreferences::create(
        numCopies: 1,
        pickTrayByPDFSize: true,  // 根據頁面大小自動選紙匣
        printScaling: PrintScaling::AppDefault,  // None | AppDefault
        duplex: Duplex::DuplexFlipLongEdge,      // 自動雙面列印(長邊翻轉)
    ),
);
Duplex 選項 說明
Simplex 單面列印
DuplexFlipShortEdge 雙面,短邊翻轉(適合橫向文件)
DuplexFlipLongEdge 雙面,長邊翻轉(適合直向文件,最常見)

方向性文字設定

// RTL(右至左)語言文件的閱讀方向
$document->viewerPreferences()->setDirection(
    Direction::R2L,  // L2R(預設)| R2L(阿拉伯文、希伯來文)
);

參見