overleaf/services/web/frontend/js/features/pdf-preview/util/pdf-js-versions.js
Alf Eaton 8f343be843 Merge pull request #8975 from overleaf/ae-pdfjs-standard-fonts
Add standardFontDataUrl to PDF.js config

GitOrigin-RevId: a9304da6d8a9115056240fc3ed4897415bf6e159
2022-07-27 12:17:53 +00:00

74 lines
2 KiB
JavaScript

// To add a new version, copy and adjust one of the `importPDFJS*` functions below,
// add the variant to the "switch" statement, and add to `pdfjsVersions` in webpack.config.js
import 'core-js/stable/global-this' // polyfill for globalThis (used by pdf.js)
import 'core-js/stable/promise/all-settled' // polyfill for Promise.allSettled (used by pdf.js)
import getMeta from '../../../utils/meta'
import { createWorker } from '../../../utils/worker'
async function importPDFJS210() {
const cMapUrl = '/js/pdfjs-dist210/cmaps/'
const standardFontDataUrl = '/fonts/pdfjs-dist210/'
const imageResourcesPath = '/images/pdfjs-dist210'
const [PDFJS, PDFJSViewer] = await Promise.all([
import('pdfjs-dist210/legacy/build/pdf'),
import('pdfjs-dist210/legacy/web/pdf_viewer'),
import('pdfjs-dist210/legacy/web/pdf_viewer.css'),
])
createWorker(() => {
PDFJS.GlobalWorkerOptions.workerPort = new Worker(
new URL('pdfjs-dist210/legacy/build/pdf.worker.js', import.meta.url)
)
})
return {
PDFJS,
PDFJSViewer,
cMapUrl,
imageResourcesPath,
standardFontDataUrl,
}
}
async function importPDFJS213() {
const cMapUrl = '/js/pdfjs-dist213/cmaps/'
const standardFontDataUrl = '/fonts/pdfjs-dist213/'
const imageResourcesPath = '/images/pdfjs-dist213'
const [PDFJS, PDFJSViewer] = await Promise.all([
import('pdfjs-dist213/legacy/build/pdf'),
import('pdfjs-dist213/legacy/web/pdf_viewer'),
import('pdfjs-dist213/legacy/web/pdf_viewer.css'),
])
createWorker(() => {
PDFJS.GlobalWorkerOptions.workerPort = new Worker(
new URL('pdfjs-dist213/legacy/build/pdf.worker.js', import.meta.url)
)
})
return {
PDFJS,
PDFJSViewer,
cMapUrl,
imageResourcesPath,
standardFontDataUrl,
}
}
async function importPDFJS() {
const variant = getMeta('ol-pdfjsVariant', 'default')
switch (variant) {
case '213':
case 'default':
return importPDFJS213()
case '210':
return importPDFJS210()
}
}
export default importPDFJS()