PDFium Delphi Component Docs

PrintPageRanges Propriété

Composant: TPdf  ·  Unit: PDFium
Liste décodée de plages de pages à partir de 1 que l'auteur du PDF aimerait voir suggérées dans la boîte de dialogue d'impression — l'entrée /PrintPageRange du dictionnaire /ViewerPreferences du document

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // read only

Description

PDF 1.7 a ajouté /PrintPageRange à /ViewerPreferences sous la forme d'une séquence de paires d'entiers décrivant les plages de pages qu'une visionneuse doit présélectionner dans sa boîte de dialogue d'impression (PDF 32000-1 § 12.2 Table 150). PDFium analyse ce tableau et l'expose via cette propriété sous forme de tableau dynamique Pascal de records TPdfPrintPageRange, chacun contenant un StartPage et un EndPage en numérotation à partir de 1

Lorsque le document n'inclut pas cette entrée, le tableau retourné est vide (Length(Result) = 0) — interprétez cela comme « imprimer toutes les pages ». Lorsqu'une seule page est recommandée, la plage correspondante a des valeurs StartPage et EndPage identiques, par exemple (3, 3) pour « page 3 seulement »

Associez le résultat à PrintCopies, PrintScaling et PrintPaperHandling lorsque vous alimentez une boîte de dialogue d'impression afin que les quatre indices puissent être affichés à l'utilisateur. Comme les autres préférences d'impression, il s'agit seulement d'une indication ; PDFium n'impose pas la plage pendant le rendu

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