PDFium Delphi Component Docs

PrintPageRanges Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Dekodierte Liste von seitenbasierten Seitenbereichen, die der Autor des PDFs dem Druckdialog vorschlagen möchte — der Eintrag /PrintPageRange im /ViewerPreferences-Wörterbuch des Dokuments.

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // read only

Description

PDF 1.7 hat /PrintPageRange zu /ViewerPreferences hinzugefügt, als Folge von Integer-Paaren, die die Seitenbereiche beschreiben, die ein Viewer in seinem Druckdialog vorbelegen soll (PDF 32000-1 § 12.2 Table 150). PDFium parst dieses Array und legt es über diese Eigenschaft als Pascal-Dynamic-Array aus TPdfPrintPageRange-Records offen, die jeweils ein StartPage und ein EndPage in 1-basierter Zählung halten

Enthält das Dokument den Eintrag nicht, ist das zurückgegebene Array leer (Length(Result) = 0) — das als "alle Seiten drucken" behandeln. Wird eine einzelne Seite empfohlen, haben StartPage und EndPage des zugehörigen Bereichs gleiche Werte, etwa (3, 3) für "nur Seite 3"

Das Ergebnis mit PrintCopies, PrintScaling und PrintPaperHandling kombinieren, wenn Sie einen Druckdialog verdrahten, damit dem Nutzer alle vier Hinweise angezeigt werden können. Wie die anderen Druckeinstellungen ist auch das rein empfehlend; PDFium erzwingt den Bereich beim Rendering nicht

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