Pdf.js: دعم مفقود لمعلمة "العرض الصحيح" في معرفات جزء عنوان URL

تم إنشاؤها على ٢٨ أبريل ٢٠١٩  ·  7تعليقات  ·  مصدر: mozilla/pdf.js

وفقًا لمعايير فتح ملفات PDF (الإصدار 9.0) (والمشار إليها في RFC 8118 ):

viewrect = _left _، _ top _، _ wd _، _ ht_

يضبط مستطيل العرض باستخدام قيم عدد صحيح أو عدد صحيح في نظام إحداثي حيث يمثل 0،0 الزاوية اليسرى العلوية للصفحة المرئية ، بغض النظر عن تدوير المستند.

يبدو أن المعلمة viewrect في معرفات جزء عنوان URL لـ PDF غير مدعومة حاليًا. للتحقق ، اختبرت ما يلي:


إعدادات:

خطوات إعادة إظهار المشكلة:

  1. تحقق من المستودع ، وقم بتشغيل npm install و gulp server ، ثم انتقل إلى ملف PDF بأبعاد صفحة 8.5 × 11 (على سبيل المثال http: // localhost: 8888 / web / viewer. html؟ file =٪ 2Ftest٪ 2Fpdfs٪ 2Ftracemonkey.pdf).
  2. قم بإلحاق #page=1&viewrect=72,72,288,432 بعنوان URL في شريط العناوين ، وأعد تحميل الصفحة.

ما هو السلوك المتوقع؟

يجب أن يقوم العارض بتكبير مستطيل (تقريبًا) مقاس 4 × 6 والذي يتم إزاحته 1 بوصة من أعلى الصفحة و 1 بوصة من الحافة اليسرى للصفحة.

ماذا حصل؟

لم يتم تحويل منفذ العرض كما هو متوقع لأن PDF JS لا يدعم viewrect .


أنا أيضا ركضت

$ git grep viewrect

التي أسفرت عن 0 نتيجة ، وأجريت عمليات البحث التالية على GitHub ، وكلاهما لم يعطِ شيئًا:

1-viewer 2-feature

التعليق الأكثر فائدة

لا تتردد في العمل على هذا. أعتقد أن wd هو "العرض" و ht هو "الارتفاع".

ال 7 كومينتر

أهلا،
أنا جديد هنا ، وأبحث عن مشكلة يجب إصلاحها ، وأود إصلاح هذه المشكلة ما لم يكن شخص ما قد قام بذلك بالفعل. وقرأت أيضًا التوثيق حول viewRect ، لست متأكدًا تمامًا ، إلى ماذا يشير wd و ht.
يمكن لأي شخص أن ينورني حول هذا wd ، و ht ، من فضلك؟ شكرا لك مقدما.

لا تتردد في العمل على هذا. أعتقد أن wd هو "العرض" و ht هو "الارتفاع".

مرحبًا AndrewMyint ، أردت فقط zoom " (المسماة بشكل خاطئ): https: // github .com / mozilla / pdf.js / issues / 10773 و https://github.com/mozilla/pdf.js/issues/2843.

شكرًا markmatney على أنني كنت أبحث في pdf_link_service.js ، وأنا مندهش من أن المعلمة " zoom " تتعامل مع وسيطة Fit بينما يجب التعامل معها في " view " المعلمة وفقا للوثائق .

markmatney إذا لم أكن مخطئًا ، كوسيطات مثل (left, top, scale, Fit, ...) في BaseViewer.scrollPageIntoView . وهناك عدد من حالات التبديل (Fit, FitB, FitH,......) معالجة في scrollPageIntoView . وهناك حالة واحدة مثيرة وجدتها وهي FitR التي لا أرى فيها حتى الوسيطة FitR في التوثيق .

ولكن يبدو لي أن " FitR " ينتج سلوك " viewrect " إذا قمت بإلحاق #zoom=FitR,72,72,288,432 بشريط عنوان URL.

هل يمكنك تأكيد أن هذا هو السلوك المتوقع لـ viewrect ، من فضلك؟ شكرا لك.

نعم ، أعتقد أن BaseViewer.scrollPageIntoView هي الطريقة التي تبحث في كل هذه الحجج ثم تقوم بطريقة ما بتحويل إطار العرض بناءً عليها.

أتذكر أيضًا أنني رأيت FitR عندما نظرت في هذا الأمر في البداية. تم تقديمه في master في d30fac0 (4 سبتمبر 2011) مع باقي Fit* args ، وهو محدد في مواصفات مرجع PDF . لست متأكدًا من سبب حذفه من مواصفات "معلمات فتح ملفات PDF" (أو سبب وجود مواصفات منفصلة لهذه المسألة).

على أي حال ، لدي رأي قوي بأنه يجب تطبيق viewrect بشكل مختلف عن FitR . هذا بالتأكيد قابل للنقاش ، ولكن:

  • مجرد معاملتهم بالطريقة نفسها سيكون زائداً عن الحاجة وسيحد من عدد حالات الاستخدام التي يمكن أن يحققها هذا البرنامج ، و
  • نظرًا لأن مواصفات PDF تحدد دلالات كل منها بشكل مختلف ، فنحن بالتأكيد _يمكننا_ تنفيذها بشكل مختلف مع استمرار الالتزام بالمواصفات.

أتمنى أن أرى تطبيقًا viewrect حيث ، على عكس FitR ، لا يعتمد العرض الناتج على أبعاد نافذة متصفح الويب الخاصة بالمستخدم. لمعرفة ما أعنيه ، انتقل إلى https://mozilla.github.io/pdf.js/web/viewer.html#zoom = FitR، 0،0،144،144. يطلب جزء عنوان URL من العارض عرض منطقة مربعة مقاس 2 × 2 بوصة تقريبًا (_w_ x _h_ ، 1 بوصة ~ 72 بكسل). حاليًا ، إذا كان المتصفح في وضع ملء الشاشة بدقة 1080 × 720 (نسبة 3: 2) أفقيًا موجهًا ، فسيظهر لي في الواقع منطقة 3 × 2. إذا قمت بتدوير الشاشة 90 درجة وعرضت نفس المستطيل في متصفح ملء الشاشة ، فستظهر لي منطقة 2 "× 3". هذا بسبب يملأ PDF.JS بقية المساحة المتاحة ، وفقًا لمواصفات PDF المرجعية ص 583:

[_page_ / FitR _left_ _bottom_ _right_ _top_]

اعرض الصفحة المحددة بواسطة _page_ ، بمحتوياتها مكبرة بما يكفي لملاءمة المستطيل المحدد بواسطة الإحداثيات [...] بالكامل داخل النافذة [...] إذا كانت عوامل التكبير الأفقية والرأسية المطلوبة مختلفة ، فاستخدم أصغر الاثنان [...]

تحدد "معلمات فتح ملفات PDF" viewrect بشكل فضفاض أكثر (راجع التعليق الافتتاحي حول هذه المشكلة للتعرف على التعريف). أود أن أرى تطبيقًا يعرض نفس المنطقة بغض النظر عن حجم نافذة المتصفح ، بحيث يصبح أي شيء _ خارج_ من المنطقة المحددة خارج نطاق التركيز ("غير نشط" أو "معتم"). ما لم أفقد شيئًا ما ، سيظل هذا التنفيذ متوافقًا مع المواصفات.

عند قراءة تعليقي ، أدركت للتو أن تطبيق PDFjs FitR يختلف عن المواصفات المرجعية لـ PDF. يفسر المستطيل كـ _x ، y ، w ، h_ عندما يجب تفسيره على أنه _ يسار ، أسفل ، يمين ، أعلى_.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

brandonros picture brandonros  ·  3تعليقات

jigskpatel picture jigskpatel  ·  3تعليقات

THausherr picture THausherr  ·  3تعليقات

timvandermeij picture timvandermeij  ·  4تعليقات

BrennanDuffey picture BrennanDuffey  ·  3تعليقات