Spaces:
Build error
Build error
| <script lang="ts"> | |
| import pdfjsLib from "pdfjs-dist"; | |
| pdfjsLib.GlobalWorkerOptions.workerSrc = "https://cdn.jsdelivr.net/npm/pdfjs-dist/build/pdf.worker.min.js"; | |
| let pdfDoc; | |
| let numPages = 1; | |
| let currentPage = 1; | |
| let canvasRef; | |
| export let value; | |
| async function loadPDF(value) { | |
| const loadingTask = pdfjsLib.getDocument(value.url); | |
| pdfDoc = await loadingTask.promise; | |
| numPages = pdfDoc.numPages; | |
| currentPage = 1; | |
| renderPage(); | |
| } | |
| function renderPage() { | |
| pdfDoc.getPage(currentPage).then((page) => { | |
| const viewport = page.getViewport({ scale: 1.5 }); | |
| const canvasContext = canvasRef.getContext("2d"); | |
| canvasRef.width = viewport.width; | |
| canvasRef.height = viewport.height; | |
| page.render({ | |
| canvasContext, | |
| viewport, | |
| }); | |
| }); | |
| } | |
| function nextPage() { | |
| if (currentPage < numPages) { | |
| currentPage++; | |
| renderPage(); | |
| } | |
| } | |
| function prevPage() { | |
| if (currentPage > 1) { | |
| currentPage--; | |
| renderPage(); | |
| } | |
| } | |
| $: if (value?.url) { | |
| loadPDF(value); | |
| } | |
| </script> | |
| <div> | |
| <div class="pdf-viewer"> | |
| <canvas bind:this={canvasRef}></canvas> | |
| </div> | |
| <div class="controls"> | |
| <button on:click={prevPage} disabled={currentPage === 1}>⬅️ Anterior</button> | |
| <span>{currentPage} / {numPages}</span> | |
| <button on:click={nextPage} disabled={currentPage === numPages}>Siguiente ➡️</button> | |
| </div> | |
| </div> | |
| <style> | |
| .pdf-viewer { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 500px; | |
| } | |
| .controls { | |
| display: flex; | |
| justify-content: center; | |
| gap: 10px; | |
| margin-top: 10px; | |
| } | |
| </style> |