22 lines
582 B
JavaScript
22 lines
582 B
JavaScript
export async function generatePdfThumbnail(pdfSource, targetWidth = 200) {
|
|
const { pdfToPng } = await import('pdfconvert-wasm');
|
|
const images = await pdfToPng(pdfSource, {
|
|
firstPage: 1,
|
|
singleFile: true,
|
|
scaleToX: targetWidth,
|
|
});
|
|
|
|
if (!images || images.length === 0) {
|
|
return null;
|
|
}
|
|
|
|
const blob = new Blob([images[0].data], { type: 'image/png' });
|
|
return new Promise((resolve, reject) => {
|
|
const reader = new FileReader();
|
|
reader.onloadend = () => resolve(reader.result);
|
|
reader.onerror = reject;
|
|
reader.readAsDataURL(blob);
|
|
});
|
|
}
|
|
|