مرجع HotPDF

يمكن لـ HotPDF فكّ ترميز مرشِّحات (filters) تدفق PDF المُعرَّفة من التطبيق داخل نفس خط الأنابيب المحدود المستخدَم من قِبَل فكّي الترميز المدمَجَين Flate وLZW وASCII85 وASCIIHex وRunLength

تسجيل مرشِّحات الدفع (push) أو السحب (pull)

نفّذ IHPDFCustomStreamFilter، واختر csfmPush أو csfmPull، وسجّل الواجهة عبر THotPDF.RegisterCustomStreamFilter

تُطابَق الأسماء بغضّ النظر عن حالة الأحرف ودون شرطة مائلة بادئة، وتسجيل الأسماء المكررة يكون صريحًا، ولا يمكن استبدال الأسماء المدمجة، ويقبل كل مستند 64 اسمًا مخصصًا كحد أقصى

تُطابَق الأسماء بغضّ النظر عن حالة الأحرف ودون شرطة مائلة بادئة، وتسجيل الأسماء المكررة يكون صريحًا، ولا يمكن استبدال الأسماء المدمجة، ويقبل كل مستند 64 اسمًا مخصصًا كحد أقصى

ميزانية واحدة عبر كل مرحلة

تستهلك المخرجات المخصَّصة DecodeBudgetBytes وDocumentDecodeBudgetBytes عبر المتعقّب التراكمي الموجود، لذا لا يمكن لسلسلة مختلطة من مرشِّحات مخصَّصة ومدمَجة إعادة ضبط حساب التوسّع بين المراحل

تُبلغ THPDFCustomStreamFilterRequest.MaxOutputBytes عن المخصَّص المتبقي لكل سلسلة، بينما تعني القيمة صفر أن الميزانية المُهيَّأة لكل سلسلة غير محدودة

تُطابَق الأسماء بغضّ النظر عن حالة الأحرف ودون شرطة مائلة بادئة، وتسجيل الأسماء المكررة يكون صريحًا، ولا يمكن استبدال الأسماء المدمجة، ويقبل كل مستند 64 اسمًا مخصصًا كحد أقصى

ميزانية واحدة عبر كل مرحلة

يتحقق الحمل الزائد (overload) الواعي بالإلغاء لـ DecodeLoadedStreamToStream قبل التنفيذ المخصَّص وبعده وأثناء نقل تدفق السحب (pull-stream)

ينبغي على التنفيذات المخصَّصة التحقق من Request.CancellationToken داخل حلقات الدفع الطويلة أو الأعمال الخارجية الحاجبة (blocking)

يُعلن csscSeekable أن المُدخل المُستعار، أو وجهة الدفع، أو تدفق السحب المُعاد يجب أن يدعم التموضع (seeking)؛ تنتج مخالفات العقد عن dpsSeekContractViolation

ميزانية واحدة عبر كل مرحلة

تكتب كل مرحلة مخصَّصة إلى THPDFAdaptiveTempStream محدود قبل نشر أي بايتات إلى المرحلة التالية أو وجهة المستدعي

تُطابَق الأسماء بغضّ النظر عن حالة الأحرف ودون شرطة مائلة بادئة، وتسجيل الأسماء المكررة يكون صريحًا، ولا يمكن استبدال الأسماء المدمجة، ويقبل كل مستند 64 اسمًا مخصصًا كحد أقصى

تُطابَق الأسماء بغضّ النظر عن حالة الأحرف ودون شرطة مائلة بادئة، وتسجيل الأسماء المكررة يكون صريحًا، ولا يمكن استبدال الأسماء المدمجة، ويقبل كل مستند 64 اسمًا مخصصًا كحد أقصى

ميزانية واحدة عبر كل مرحلة

تُبلغ GetCustomStreamFilterStatistics عن الأسماء المسجَّلة، ومحاولات الدفع والسحب، وأعداد النجاح والفشل والإلغاء ومخالفة التموضع، وإجمالي بايتات المُدخل والمُنتَج، بالإضافة إلى آخر اسم وتشخيص

تصف THPDFDecodePipelineInfo.CustomFilterCount وCustomFilterFailureCount السلسلة الحالية

ميزانية واحدة عبر كل مرحلة

Filter := TApplicationFilter.Create;
PDF.RegisterCustomStreamFilter(Filter);
try
  if not PDF.DecodeLoadedStreamToStream(StreamObject, Output,
    CancellationToken, Info) then
    HandleDecodeFailure(Info.Status, Info.Diagnostic);
finally
  PDF.UnregisterCustomStreamFilter(Filter.FilterName);
end;

ميزانية واحدة عبر كل مرحلة