const { createCanvas } = require('canvas'); const sharp = require('sharp'); const pdfjsLib = require('pdfjs-dist/legacy/build/pdf.js'); // Configure le worker pdfjs pdfjsLib.GlobalWorkerOptions.workerSrc = require('pdfjs-dist/build/pdf.worker.min.js'); class PdfRenderer { async loadPdf(pdfPath) { const data = new Uint8Array(require('fs').readFileSync(pdfPath)); const loadingTask = pdfjsLib.getDocument({ data }); const pdf = await loadingTask.promise; return { pdf, totalPages: pdf.numPages }; } async renderPage(pdf, pageNumber) { const page = await pdf.getPage(pageNumber); const viewport = page.getViewport({ scale: 1.5 }); const canvas = createCanvas(viewport.width, viewport.height); const context = canvas.getContext('2d'); await page.render({ canvasContext: context, viewport, }).promise; const buffer = canvas.toBuffer('image/png'); return sharp(buffer).png({ quality: 90 }).toBuffer(); } } module.exports = PdfRenderer;