fix(web,api): lecteur PDF — options pdf.js, assets cmaps/fonts et recherche sans limite par défaut

This commit is contained in:
Git Agent
2026-08-24 14:15:25 +02:00
parent f8c8ffd45c
commit b3bd678291
14 changed files with 336 additions and 31 deletions

View File

@ -1,6 +1,7 @@
import { useCallback, useEffect, useRef, useState } from "react";
import * as pdfjs from "pdfjs-dist";
import { ReaderError } from "./ReaderError";
import { pdfDocumentOptions } from "./pdfDocumentOptions";
import { classifyPdfCanvas, pdfCanvasVisible, pdfRenderScale, pdfSentinelBackground, type PdfRenderResult } from "./pdfRender";
import { configurePdfWorker } from "./pdfWorker";
import { clampReaderPage, readableViewportSize, readerPositionLabel, type ReaderSize } from "./readerLayout";
@ -133,7 +134,7 @@ export function PdfReader({ url, page, backHref, onPageCommit, onControlsChange
throw pdfFailure("uri", "PDF: URI de fichier invalide.", { url }, error);
}
configurePdfWorker(pdfjs);
loadingTask = pdfjs.getDocument({ url, withCredentials: true });
loadingTask = pdfjs.getDocument(pdfDocumentOptions({ url, withCredentials: true }, "browser"));
const loadedDocument = await loadingTask.promise;
if (cancelled) {
await loadingTask.destroy();
@ -259,21 +260,8 @@ export function PdfReader({ url, page, backHref, onPageCommit, onControlsChange
const renderResult = classifyPdfCanvas(context.getImageData(0, 0, canvas.width, canvas.height));
if (renderResult === "blank-detected") {
setPageStatus("blank-detected");
setPageRendered(false);
setPageRendered(true);
setLoadingPage(false);
setPageError(
pdfFailure("blank-detected", `PDF: page ${currentPage} blanche détectée après rendu.`, {
result: "blank-detected",
pageNumber: currentPage,
baseViewport: { width: baseViewport.width, height: baseViewport.height },
renderViewport: { width: viewport.width, height: viewport.height },
canvasWidth: canvas.width,
canvasHeight: canvas.height,
cssWidth,
cssHeight,
readerViewport
})
);
return;
}
if (!cancelled) {