PDFium Delphi Component Docs

PrintPageRanges Propiedad

Componente: TPdf  ·  Unidad: PDFium
Lista decodificada de rangos de páginas en base 1 que el autor del PDF querría que el diálogo de impresión sugiriera — la entrada /PrintPageRange del diccionario /ViewerPreferences del documento

Syntax

property PrintPageRanges: TPdfPrintPageRanges;// solo lectura

Description

PDF 1.7 añadió /PrintPageRange a /ViewerPreferences como una secuencia de pares de enteros que describen los rangos de página que un visor debe preseleccionar en su diálogo Imprimir (PDF 32000-1 § 12.2 Tabla 150). PDFium analiza esa matriz y la expone mediante esta propiedad como una matriz dinámica Pascal de registros TPdfPrintPageRange, cada uno con un StartPage y un EndPage en numeración basada en uno

Cuando el documento no incluye la entrada, la matriz devuelta está vacía (Length(Result) = 0) — trátelo como "imprimir todas las páginas". Cuando se recomienda una sola página, el rango correspondiente tiene valores StartPage y EndPage iguales, p. ej. (3, 3) para "solo página 3"

Combine el resultado con PrintCopies, PrintScaling y PrintPaperHandling al conectar un diálogo de impresión para que las cuatro pistas puedan mostrarse al usuario. Como las otras preferencias de impresión esto es solo consultivo; PDFium no impone el rango durante el renderizado

Remarks

Example

// Construir una cadena separada por comas como "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