Pdf.js: قم بتشغيل عرض لوحة PDF.js في عامل الويب

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

إعدادات:

  • كروم 71
  • نظام التشغيل ونسخته: أي
  • إصدار PDF.js: 2.0.943
  • امتداد المتصفح: لا

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

  1. اكتب عامل ويب مثل هذا:
function onmessage () {
  const pdfDocument = await pdfjs.getDocument('/some-hard-coded.pdf')
  const page = await pdfDocument.getPage(1)
  const viewport = pdfPage.getViewport(1)
  const width = 250
  const height = viewport.height * (width / viewport.width)
  const canvas = new OffscreenCanvas(width, height)
  const canvasContext = canvas.getContext('2d', { alpha: false })
  return page.render({ canvasContext, viewport })
})
  1. اتصل بهذا على سبيل المثال w = new Worker('sample-pdf.js');

ما هو السلوك المتوقع؟ (إضافة لقطة شاشة)

سيتم عرض ملف PDF على OffscreenCanvas

ماذا حصل؟ (إضافة لقطة شاشة)

ReferenceError: لم يتم تعريف الوثيقة
في GenericFontLoader.insertRule (pdf.js: 10154)
في GenericFontLoader.bind (pdf.js: 10205)
في WorkerTransport.(pdf.js: 9177)
على LoopbackPort.MessageHandler._onComObjOnMessage (pdf.js: 12833)
في LoopbackPort.(pdf.js: 8681)
في Array.forEach ()

على سبيل المثال ، هذا فشل:

styleElement = this.styleElement = document.createElement ('style') ؛

المشكلة هي عدم وجود DOM. قد تكون المشكلة متعلقة بالوثائق ، حيث

1-core

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

كيف تستخدم pdf.js داخل عامل الويب؟

لقد استوردته بهذا.

// Worker.ts
import { pdfjs } from "react-pdf";
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;

pdfjs.getDocument(...) => errors

ولكن عند استخدام getDocument . تقوم بإرجاع خطأ

خطأ غير معلوم (في الوعد): فشل إعداد عامل وهمي: "__webpack_require __ (...). تأكد من أنه ليس وظيفة"

ال 4 كومينتر

يبدو (بشكل أساسي) وكأنه نسخة مكررة من المشكلة # 10039 ؛ على الأرجح ، ستكون هناك حاجة إلى قدر معقول من إعادة العوملة لـ OffscreenCanvas ليتم دعمها خارج الصندوق.

شكرا. Snuffleupagus لقد رأيت هذه المشكلة ، وكان ينبغي ربطها ؛ المشاكل ليست متطابقة بمعنى أن:

  1. OffscreenCanvas في الموضوع الرئيسي (أي أن استخدامه لا يقتصر على العاملين على الويب) ؛
  2. لا يحتاج عامل الويب إلى استخدام OffscreenCanvas (على سبيل المثال ، قد تنجح عملية تعبئة قماشية بخلاف OffscreenCanvas) ؛
  3. قد لا يكون العمل OffscreenCanvas هو المشكلة الوحيدة التي يواجهها PDF.js في العاملين على الويب.

بمعنى آخر ، يعد الدعم OffscreenCanvas مشكلة أخرى قد تكون بديلاً محتملاً لـ CanvasElement ، ولكن هذا وحده قد لا يكون كافياً لحل هذه المشكلة.

بالنظر إلى https://github.com/mozilla/pdf.js/blob/master/examples/node/pdf2png/pdf2png.js (مثال للعقدة) ، يبدو أنك قد تحتاج إلى كسب canvasFactory ، جدا. ماذا يحدث إذا فعلت ذلك؟

كيف تستخدم pdf.js داخل عامل الويب؟

لقد استوردته بهذا.

// Worker.ts
import { pdfjs } from "react-pdf";
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;

pdfjs.getDocument(...) => errors

ولكن عند استخدام getDocument . تقوم بإرجاع خطأ

خطأ غير معلوم (في الوعد): فشل إعداد عامل وهمي: "__webpack_require __ (...). تأكد من أنه ليس وظيفة"

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

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

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

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

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

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

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