skyflytravel.hu/images/convert.html

46 lines
1.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>PDF to PNG Chunked</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js"></script>
</head>
<body>
<canvas id="the-canvas"></canvas>
<div id="status">Loading...</div>
<script>
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js';
async function convert() {
try {
const url = 'http://localhost:3001/Skyfly%20%20logo.pdf';
const loadingTask = pdfjsLib.getDocument(url);
const pdf = await loadingTask.promise;
const page = await pdf.getPage(1);
const scale = 3;
const viewport = page.getViewport({ scale: scale });
const canvas = document.getElementById('the-canvas');
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
await page.render({ canvasContext: context, viewport: viewport }).promise;
const dataUrl = canvas.toDataURL('image/png');
const chunkSize = 50000;
console.log('CHUNKS_TOTAL', Math.ceil(dataUrl.length / chunkSize));
for (let i = 0; i < dataUrl.length; i += chunkSize) {
console.log('CHUNK_' + (i / chunkSize), dataUrl.substring(i, i + chunkSize));
}
console.log('CHUNKS_FINISHED');
document.body.setAttribute('data-status', 'done');
} catch (err) {
console.error(err);
}
}
convert();
</script>
</body>
</html>