PDFium Delphi Component 文件

PrintPageRanges 属性

组件: TPdf  ·  单元: PDFium
已解码的 1 基页面范围列表,表示 PDF 作者希望打印对话框建议采用的范围 — 即文档 /ViewerPreferences 字典中的 /PrintPageRange 条目

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // read only

Description

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 在渲染期间不强制该范围

Remarks

Example

// 构建逗号分隔的字符串,如 "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;

See Also

PrintCopies, PrintScaling, PrintPaperHandling, ViewerPreference