fix(document): configure pdf.js wasmUrl so CCITT/JBIG2 scans stop rendering blank (#708) #713

Merged
marcel merged 15 commits from feat/issue-708-pdfjs-wasmurl into main 2026-06-01 21:25:57 +02:00
2 changed files with 7 additions and 4 deletions
Showing only changes of commit f24c415b04 - Show all commits

View File

@@ -277,7 +277,7 @@ describe('createPdfRenderer', () => {
expect(r.error).toBeNull();
});
it('loadDocument sets error and loading=false when getDocument().promise rejects', async () => {
it('loadDocument sets a localized error (not the raw pdf.js message) when getDocument rejects', async () => {
const failingLib = {
GlobalWorkerOptions: { workerSrc: '' },
getDocument: vi.fn().mockReturnValue({
@@ -294,6 +294,7 @@ describe('createPdfRenderer', () => {
await r.init();
await r.loadDocument('/bad/path');
expect(r.loading).toBe(false);
expect(r.error).toBe('PDF not found');
expect(r.error).toBe(m.doc_render_failed());
expect(r.error).not.toContain('PDF not found');
});
});

View File

@@ -55,8 +55,10 @@ export function createPdfRenderer(libLoader: LibLoader = defaultLibLoader) {
const doc = await loadingTask.promise;
pdfDoc = doc;
totalPages = doc.numPages;
} catch (e) {
error = e instanceof Error ? e.message : 'Failed to load PDF';
} catch {
// Never surface the raw pdf.js message — show a localized failure
// that routes into the viewer's error UI (message + download link).
error = m.doc_render_failed();
} finally {
loading = false;
}