/PrintPageRange im
/ViewerPreferences-Wörterbuch des Dokuments.property PrintPageRanges: TPdfPrintPageRanges; // read only
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
// 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;