PDFium Delphi Component Docs

PrintPageRanges プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
PDF の作成者が印刷ダイアログに提案したい 1-based ページ範囲のデコード済みリストです — ドキュメントの /ViewerPreferences 辞書にある /PrintPageRange entry を読み取ります

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // read only

Description

PDF 1.7 は /ViewerPreferences に /PrintPageRange を追加しました。ビューアーが印刷ダイアログであらかじ選んでおくべきページ範囲を、整数ペアの並びで記述します(PDF 32000-1 の § 12.2 Table 150)。PDFium はこの配列を解析し、TPdfPrintPageRange レコードの Pascal 動的配列としてこのプロパティ経由で公開します。各レコードは 1 基準の StartPage と EndPage を持ちます

ドキュメントにこの entry がない場合、返される配列は空です(Length(Result) = 0)。「全ページ印刷」として扱ってください。1 ページだけが推奨される場合、対応する範囲は StartPage と EndPage が等しくなります。「3 ページ目だけ」なら (3, 3) です

印刷ダイアログを組み立てるときは、結果を PrintCopies、PrintScaling、PrintPaperHandling と組み合わせて、4 つのヒントをまとめてユーザーへ見せます。他の印刷設定と同様、これは参考値にすぎず、PDFium が描画時に範囲を強制することはありません

Remarks

Example

// 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;

See Also

PrintCopies, PrintScaling, PrintPaperHandling, ViewerPreference