mirror of
https://github.com/john-okeefe/foliate-js.git
synced 2026-09-09 11:29:14 -04:00
Allow explicit PDF.js resource paths for bundler compatibility
Bundlers like Vite cannot resolve directory paths (cmaps/, standard_fonts/) through the new URL(..., import.meta.url) pattern. Add optional config to makePDF, makeBook, and View.open so consumers can provide explicit URLs. When options are not provided, falls back to import.meta.url resolution (preserving existing behavior for direct module usage).
This commit is contained in:
@@ -129,7 +129,12 @@ const makeTOCItem = (item) => ({
|
||||
subitems: item.items.length ? item.items.map(makeTOCItem) : null,
|
||||
});
|
||||
|
||||
export const makePDF = async (file) => {
|
||||
export const makePDF = async (file, options = {}) => {
|
||||
const cMapUrl = options.cMapUrl ?? pdfjsPath("cmaps/");
|
||||
const standardFontDataUrl = options.standardFontDataUrl ?? pdfjsPath("standard_fonts/");
|
||||
if (options.workerSrc) {
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = options.workerSrc;
|
||||
}
|
||||
const transport = new pdfjsLib.PDFDataRangeTransport(file.size, []);
|
||||
transport.requestDataRange = (begin, end) => {
|
||||
file
|
||||
@@ -141,8 +146,8 @@ export const makePDF = async (file) => {
|
||||
};
|
||||
const pdf = await pdfjsLib.getDocument({
|
||||
range: transport,
|
||||
cMapUrl: pdfjsPath("cmaps/"),
|
||||
standardFontDataUrl: pdfjsPath("standard_fonts/"),
|
||||
cMapUrl,
|
||||
standardFontDataUrl,
|
||||
isEvalSupported: false,
|
||||
}).promise;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user