PDFium Delphi Component Docs

PrintPageRanges Proprietà

Componente: TPdf  ·  Unità: PDFium
Elenco decodificato di intervalli di pagine basati su uno che l'autore del PDF vorrebbe suggerire nella finestra di stampa, cioè la voce /PrintPageRange del dizionario /ViewerPreferences del documento

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // read only

Description

PDF 1.7 ha aggiunto /PrintPageRange a /ViewerPreferences come sequenza di coppie di interi che descrivono gli intervalli di pagina che un viewer dovrebbe pre-selezionare nel suo dialogo di stampa (PDF 32000-1 § 12.2, Tabella 150). PDFium analizza quell'array e lo espone tramite questa proprietà come array dinamico Pascal di record TPdfPrintPageRange, ciascuno con StartPage e EndPage in numerazione a base uno

Quando il documento non include la voce, l'array restituito è vuoto (Length(Result) = 0) — interpretalo come "stampa tutte le pagine". Quando si consiglia una singola pagina, l'intervallo corrispondente ha valori StartPage e EndPage uguali, es. (3, 3) per "solo la pagina 3"

Abbina il risultato a PrintCopies, PrintScaling e PrintPaperHandling quando colleghi un dialogo di stampa così tutti e quattro gli hint possono essere mostrati all'utente. Come le altre preferenze di stampa questo valore è solo consultivo; PDFium non impone l'intervallo durante il rendering

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