/ViewerPreferences 字典中的 /PrintPageRange 項目property PrintPageRanges: TPdfPrintPageRanges; // read only
PDF 1.7 將 /PrintPageRange 加入 /ViewerPreferences,作為一組整數配對,用來描述檢視器應在列印對話框中預先選取的頁面範圍(PDF 32000-1 § 12.2 Table 150)。PDFium 會剖析該陣列,並以 Pascal 動態陣列 TPdfPrintPageRange 記錄回傳,每個記錄都以 1 起算的編號保存 StartPage 與 EndPage
當文件沒有這個項目時,回傳陣列會是空的(Length(Result) = 0) — 可將其視為「列印所有頁面」。當建議只列印單一頁時,對應範圍的 StartPage 與 EndPage 會相等,例如 (3, 3) 代表「只列印第 3 頁」
在串接列印對話框時,可將結果與 PrintCopies、PrintScaling 以及 PrintPaperHandling 一起使用,讓這四個提示都能顯示給使用者。和其他列印偏好一樣,這只是建議,PDFium 不會在轉譯期間強制執行此範圍
// Build a comma-separated string like "1-3, 7, 10-12".
var Ranges: TPdfPrintPageRanges;
var S: string;
var I: Integer;
begin
Ranges := Pdf1.PrintPageRanges;
if Length(Ranges) = 0 then Exit;
for I := 0 to High(Ranges) do
begin
if S <> '' then S := S + ', ';
if Ranges[I].StartPage = Ranges[I].EndPage then
S := S + IntToStr(Ranges[I].StartPage)
else
S := S + Format('%d-%d', [Ranges[I].StartPage, Ranges[I].EndPage]);
end;
editRanges.Text := S;
end;