/PrintPageRange في قاموس /ViewerPreferences الخاص بالمستندproperty PrintPageRanges: TPdfPrintPageRanges; // read only
أضاف PDF 1.7 مدخل /PrintPageRange إلى /ViewerPreferences بوصفه
تسلسلًا من أزواج أعداد صحيحة تصف نطاقات الصفحات التي ينبغي للعارض تحديدها مسبقًا في
مربع حوار الطباعة (PDF 32000-1 § 12.2 الجدول 150). ويحلل PDFium تلك المصفوفة ويسطحها
عبر هذه الخاصية بوصفها مصفوفة ديناميكية Pascal من
سجلات TPdfPrintPageRange، يحمل كل منها StartPage و
EndPage بترقيم يبدأ من الواحد.
عندما لا يتضمن المستند المدخل تكون المصفوفة المُرجعة فارغة
(Length(Result) = 0) — فاعتبر ذلك "اطبع كل الصفحات". وعند
التوصية بصفحة واحدة يكون للنطاق المقابل قيمتا StartPage
و EndPage متساويتان، مثل (3, 3) بمعنى "الصفحة 3 فقط".
اقرن النتيجة مع PrintCopies و PrintScaling و PrintPaperHandling عند توصيل مربع حوار طباعة لتُعرض التلميحات الأربعة كلها على المستخدم. ومثل تفضيلات الطباعة الأخرى هذا تلميح استرشادي فقط؛ فلا يفرض PDFium النطاق أثناء العرض.
// 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;