/PrintPageRange van het /ViewerPreferences-woordenboek van het documentproperty PrintPageRanges: TPdfPrintPageRanges; // read only
PDF 1.7 voegde /PrintPageRange toe aan /ViewerPreferences als een reeks gehele paren die de paginabereiken beschrijven die een viewer voor-selecteert in zijn afdrukdialoog (PDF 32000-1 § 12.2 Tabel 150). PDFium parseert die array en stelt deze beschikbaar via deze eigenschap als een Pascal dynamische array van TPdfPrintPageRange-records, die elk een StartPage en EndPage in op 1 gebaseerde nummering bevatten.
Wanneer het document de vermelding niet bevat is de geretourneerde array leeg (Length(Result) = 0) — behandel dat als "alle pagina's afdrukken". Wanneer één pagina wordt aanbevolen heeft het overeenkomstige bereik gelijke StartPage- en EndPage-waarden, bijv. (3, 3) voor "alleen pagina 3".
Koppel het resultaat met PrintCopies, PrintScaling en PrintPaperHandling bij het koppelen van een afdrukdialoog zodat alle vier hints aan de gebruiker kunnen worden getoond. Zoals de andere afdrukvoorkeuren is dit alleen adviserend; PDFium dwingt het bereik niet af tijdens rendering.
// 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;