PDFiumPas 文档

PrintPageRanges 属性

此 API 条目保留标识符、签名、代码块和 PDF 术语的原始形式。
组件: TPdf  ·  单元: PDFium
已解码的 1 基页面范围列表,表示 PDF 作者希望打印对话框建议采用的范围 — 即文档 /ViewerPreferences 字典中的 /PrintPageRange 条目

语法

property PrintPageRanges: TPdfPrintPageRanges; // read only

说明

PDF 1.7 在 /ViewerPreferences 中加入了 /PrintPageRange,它由一组整数对组成,用来描述查看器应在打印对话框中预先选择的页面范围(PDF 32000-1 § 12.2 表 150)。PDFium 会解析该数组,并通过此属性把它暴露为 Pascal 动态数组 TPdfPrintPageRange 记录,每个记录都以 1 基编号保存 StartPageEndPage

如果文档没有包含该条目,返回的数组就是空的(Length(Result) = 0)—请把它视为“打印所有页面”。当只建议单页时,对应范围的 StartPageEndPage 值相同,例如 (3, 3) 表示“仅第 3 页”

在连接打印对话框时,请把结果与 PrintCopiesPrintScalingPrintPaperHandling 一起使用,这样四个提示都能显示给用户。和其他打印首选项一样,这也只是建议,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;

另请参阅

PrintCopies, PrintScaling, PrintPaperHandling, ViewerPreference