PDFium Delphi Component Docs

PrintPageRanges Propriedade

Componente: TPdf  ·  Unidade: PDFium
Lista decodificada de intervalos de páginas iniciados em 1 que o autor do PDF gostaria que o diálogo de impressão sugerisse — a entrada /PrintPageRange do dicionário /ViewerPreferences do documento

Syntax

property PrintPageRanges: TPdfPrintPageRanges; // somente leitura

Description

O PDF 1.7 acrescentou /PrintPageRange a /ViewerPreferences como uma sequência de pares de inteiros que descrevem os intervalos de páginas que um visualizador deve pré-selecionar em seu diálogo de impressão (PDF 32000-1 § 12.2 Table 150). O PDFium analisa esse array e o expõe por meio desta propriedade como um array dinâmico Pascal de records TPdfPrintPageRange, cada um contendo um StartPage e um EndPage em numeração iniciada em 1

Quando o documento não inclui a entrada, o array retornado fica vazio (Length(Result) = 0) — trate isso como "imprimir todas as páginas". Quando uma única página é recomendada, o intervalo correspondente tem valores iguais de StartPage e EndPage, por exemplo (3, 3) para "somente a página 3"

Combine o resultado com PrintCopies, PrintScaling e PrintPaperHandling ao montar um diálogo de impressão, para que todas as quatro dicas possam ser exibidas ao usuário. Como as outras preferências de impressão, isto é apenas consultivo; o PDFium não impõe o intervalo durante a renderização

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