أرفق (موصى به) أو رابط إلى ملف PDF هنا:
test4.pdf
إعدادات:
خطوات إعادة إظهار المشكلة:
ما هو السلوك المتوقع؟ (إضافة لقطة شاشة)
لا اخطاء.
ماذا حصل؟ (إضافة لقطة شاشة)
تم تقسيم مسار واحد في الإخراج إلى جزأين.
الأولي "M" في عقدة واحدة و "L" التالية في العقدة التالية.
يجب أن تكون هذه في نفس العقدة.
ارتباط إلى عارض (إذا تمت استضافته على موقع بخلاف mozilla.github.io/pdf.js أو كملحق Firefox / Chrome):
قد يكون هذا متعلقًا بالخطأ رقم 9167.
أعتقد أن الجاني موجود هنا:
https://github.com/mozilla/pdf.js/blob/a045a00af34b764edda5991d2bcd18541ed60536/src/core/operator_list.js#L533 -L534
لست معتادًا على طريقة عمل OperatorList
ولكن يبدو أن قوائم المشغلين مقسمة إلى أجزاء تضم حوالي 1000 عامل. في بعض الأحيان يتم وضع حدود القطعة في منتصف تعريف مسار PDF. ينتج عن هذا عاملين OPS.constructPath
ولا يبدأ العامل الأخير بـ moveTo
.
هل هذا يبدو معقولاً؟
بدلاً من تعديل OperatorList
وثابتها CHUNK_SIZE
، يجب إصلاح svg.js. ربما على هذا النحو: يجب دمج عوامل التشغيل المتتالية OPS.constructPath
في عقدة <svg:path>
إذا لم يكن هناك عامل تشغيل متداخل لطلاء المسار ...
لست معتادًا على طريقة عمل
OperatorList
ولكن يبدو أن قوائم المشغلين مقسمة إلى أجزاء تضم حوالي 1000 عامل.
صيح؛ هذا للسماح ببدء العرض قبل تحليل OperatorList
بالكامل (أي الصفحة) ، وبالتالي تقليل الوقت الإجمالي المطلوب من تحميل الصفحة حتى يتم عرضها بالكامل.
هل هذا يبدو معقولاً؟
نعم ، ويجب أن يكون من السهل التحقق (فقط قم بزيادة القيمة كثيرًا ، وتعطيل هذا التقسيم بشكل فعال).
بدلاً من تعديل
OperatorList
وثابتهاCHUNK_SIZE
، يجب إصلاح svg.js.
متفق عليه ، تعديل الثابت ليس حلاً مقبولًا بالتأكيد. بادئ ذي بدء ، لن تفعل شيئًا أكثر من نقل الخطأ إلى مكان آخر. ثانيًا وقبل كل شيء ، والأهم من ذلك بكثير ، قد يكون لتغييره آثار بعيدة المدى على أداء العرض العام في الواجهة الخلفية للقماش.
ربما على هذا النحو: يجب دمج عوامل التشغيل المتتالية
OPS.constructPath
في عقدة<svg:path>
إذا لم يكن هناك عامل تشغيل متداخل لطلاء المسار ...
مرة أخرى ، هذا يبدو معقولا تماما.
يمكنني أن أؤكد أنه إذا قمت بزيادة CHUNK_SIZE إلى 10000000 ، فستختفي المشكلة.
(وأنا أوافق على أن هذا ليس حلاً مناسبًا)
شكرا لمساعدتك.
التعليق الأكثر فائدة
صيح؛ هذا للسماح ببدء العرض قبل تحليل
OperatorList
بالكامل (أي الصفحة) ، وبالتالي تقليل الوقت الإجمالي المطلوب من تحميل الصفحة حتى يتم عرضها بالكامل.نعم ، ويجب أن يكون من السهل التحقق (فقط قم بزيادة القيمة كثيرًا ، وتعطيل هذا التقسيم بشكل فعال).
متفق عليه ، تعديل الثابت ليس حلاً مقبولًا بالتأكيد. بادئ ذي بدء ، لن تفعل شيئًا أكثر من نقل الخطأ إلى مكان آخر. ثانيًا وقبل كل شيء ، والأهم من ذلك بكثير ، قد يكون لتغييره آثار بعيدة المدى على أداء العرض العام في الواجهة الخلفية للقماش.
مرة أخرى ، هذا يبدو معقولا تماما.