pdf-js-versions.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // To add a new version, copy and adjust one of the `importPDFJS*` functions below,
  2. // add the variant to the "switch" statement, and add to `pdfjsVersions` in webpack.config.js
  3. import 'core-js/stable/global-this' // polyfill for globalThis (used by pdf.js)
  4. import 'core-js/stable/promise/all-settled' // polyfill for Promise.allSettled (used by pdf.js)
  5. import getMeta from '../../../utils/meta'
  6. import { createWorker } from '../../../utils/worker'
  7. async function importPDFJS210() {
  8. const cMapUrl = '/js/pdfjs-dist210/cmaps/'
  9. const standardFontDataUrl = '/fonts/pdfjs-dist210/'
  10. const imageResourcesPath = '/images/pdfjs-dist210'
  11. const [PDFJS, PDFJSViewer] = await Promise.all([
  12. import('pdfjs-dist210/legacy/build/pdf'),
  13. import('pdfjs-dist210/legacy/web/pdf_viewer'),
  14. import('pdfjs-dist210/legacy/web/pdf_viewer.css'),
  15. ])
  16. createWorker(() => {
  17. PDFJS.GlobalWorkerOptions.workerPort = new Worker(
  18. new URL('pdfjs-dist210/legacy/build/pdf.worker.js', import.meta.url)
  19. )
  20. })
  21. return {
  22. PDFJS,
  23. PDFJSViewer,
  24. cMapUrl,
  25. imageResourcesPath,
  26. standardFontDataUrl,
  27. }
  28. }
  29. async function importPDFJS213() {
  30. const cMapUrl = '/js/pdfjs-dist213/cmaps/'
  31. const standardFontDataUrl = '/fonts/pdfjs-dist213/'
  32. const imageResourcesPath = '/images/pdfjs-dist213'
  33. const [PDFJS, PDFJSViewer] = await Promise.all([
  34. import('pdfjs-dist213/legacy/build/pdf'),
  35. import('pdfjs-dist213/legacy/web/pdf_viewer'),
  36. import('pdfjs-dist213/legacy/web/pdf_viewer.css'),
  37. ])
  38. createWorker(() => {
  39. PDFJS.GlobalWorkerOptions.workerPort = new Worker(
  40. new URL('pdfjs-dist213/legacy/build/pdf.worker.js', import.meta.url)
  41. )
  42. })
  43. return {
  44. PDFJS,
  45. PDFJSViewer,
  46. cMapUrl,
  47. imageResourcesPath,
  48. standardFontDataUrl,
  49. }
  50. }
  51. async function importPDFJS() {
  52. const variant = getMeta('ol-pdfjsVariant', 'default')
  53. switch (variant) {
  54. case '213':
  55. case 'default':
  56. return importPDFJS213()
  57. case '210':
  58. return importPDFJS210()
  59. }
  60. }
  61. export default importPDFJS()