function RenderPagesParallel(
const PageNumbers : array of Integer;
const Options : TPdfParallelRenderOptions;
const CancellationToken: IPdfCancellationToken = nil): TPdfParallelRenderReport;
يلتقط RenderPagesParallel المستند الحالي مرة واحدة في TPdfRandomAccessStore، ويزيل تعمية اللقطة، ويُبقي المصدر غير قابل للتغيير حتى تُغلق كل مستندات العمال
تُشارك الالتقطة في الذاكرة مباشرة دون نسخة مصفوفة بايتات ثانية، وتُكشف الالتقطة المفرَّغة إلى القرص عبر تعيين ملف واحد للقراءة فقط، ويعود فشل التعيين إلى قراءات كتل FPDF_LoadCustomDocument من المخزن نفسه الآمن خيطيًا
يحمِّل كل عامل نسخة مؤقتة خاصة من ثنائية PDFium النشطة بوصفها وحدة مستقلة، ويهيئ تلك الوحدة على خيط عامله، ويعيد استخدام FPDF_DOCUMENT الخاص به أثناء تحميل الصفحات الموكَلة إليه وإغلاقها
لا تعبر حالة الوحدة ولا المستند ولا الصفحة ولا العرض التدريجي ولا الصورة النقطية حدود العامل أبدًا، تفاديًا للاستدعاءات المتزامنة غير الآمنة على وحدة PDFium واحدة
يتبع PageNumbers اصطلاح الصفحات العام الذي يبدأ من الواحد، وتطابق مصفوفة Results المُعادة ترتيب الطلب دائمًا حتى عندما ينتهي العمال بترتيب مخالف أو تفشل صفحة مفردة
تمتلك كل نتيجة ناجحة مخزن بكسلات 32 بت من أعلى إلى أسفل مع Stride = Width * 4، بترتيب بايتات BGRA ما لم يطلب reReverseByteOrder الترتيب RGBA
| الحقل | الافتراضي | المعنى |
|---|---|---|
Dpi | 96 | الدقة الهدف من أكثر من 0 حتى 2400 DPI |
MaxWorkers | 0 | 0 يختار حتى أربعة عمال، وإلا فمن 1 حتى 64 بحدٍّ هو عدد الطلبات |
MaxPixelsPerPage | 64 MiPixels | يرفض الصفحة قبل حجز مخزن نتيجة بالغ الحجم |
MaxTotalOutputBytes | 512 MiB | يحدّ مجموع مخازن البكسلات الناجحة المحتفظ بها |
Rotation | ro0 | يطبق الدوران نفسه على كل طلب ويبدّل أبعاد الإخراج عند 90 أو 270 درجة |
RenderOptions | [] | أعلام عرض PDFium الأصلية بما فيها التعليقات وتدرج الرمادي والطباعة والتنعيم وترتيب البايتات المعكوس |
BackgroundColor | clWhite | خلفية البكسلات الابتدائية قبل أن يرسم PDFium محتوى الصفحة |
pprsSucceeded الأبعاد والإزاحة وصيغة البكسلات والبكسلات والزمن المنقضيpprsCancelled أي بكسلات عندما يُلاحظ الإلغاء قبل حلقة العرض التدريجي أو أثناءهاpprsFailed صفحةً غير صالحة أو فشل تحميل أو عرض أصلي أو رفضًا لميزانية الموارد في ErrorMessageTotalOutputBytes والزمن المنقضي من طرف إلى طرفSourceSize و SourcePeakMemoryBytes و SourceStorageBackend عن كلفة الالتقطة المحدودةSourceBackingKind بقيمة ppsbSharedMemory أو ppsbMemoryMappedFile أو ppsbRandomAccessStore بعد التقاط المصدرreInvert و reNightDuotone في واجهة المخزن الخام هذه لأنهما تحويلان للصورة النقطية بعد العرضSaveMemoryLimit و SaveTemporaryDirectory في المصدر الملتقط، بينما تغطي ميزانية الإخراج مخازن النتائج المحتفظ بها لا حجوزات PDFium الداخليةTPdf نفسها بالتزامن أثناء التقاط اللقطة الابتدائيةPixels الفردية بعد استهلاكها
uses FPdfAsync;
var
Options: TPdfParallelRenderOptions;
Report: TPdfParallelRenderReport;
I: Integer;
begin
Options := TPdfParallelRenderOptions.Default;
Options.Dpi := 150;
Options.MaxWorkers := 4;
Options.RenderOptions := [reAnnotations];
Report := Pdf1.RenderPagesParallel([1, 3, 5, 7], Options, CancelToken);
for I := 0 to High(Report.Results) do
if Report.Results[I].Status = pprsSucceeded then
ConsumeTopDownPixels(Report.Results[I]);
end;