/ViewerPreferences 字典中的 /PrintPageRange 条目property PrintPageRanges: TPdfPrintPageRanges; // read only
PDF 1.7 将 /PrintPageRange 添加到 /ViewerPreferences,作为
描述查看器应在其打印对话框中预选页面范围的整数对
序列(PDF 32000-1 § 12.2 Table 150)。PDFium 解析该数组并
通过此属性将其呈现为
TPdfPrintPageRange 记录的 Pascal 动态数组,每个记录持有一个基于 1 编号的 StartPage 和
EndPage
当文档不包含该条目时,返回的数组为空
(Length(Result) = 0)— 将其视为“打印所有页面”。当
推荐单个页面时,相应的范围具有相等的 StartPage
和 EndPage 值,例如 (3, 3) 表示“仅第 3 页”
在接线打印对话框时,将结果与 PrintCopies、 PrintScaling 和 PrintPaperHandling 配对,以便向用户显示所有四个提示。与其他打印偏好一样,这 仅是建议性的;PDFium 在渲染期间不强制该范围
// 构建逗号分隔的字符串,如 "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;