<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="/favicon.ico"> <title>pdf</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.min.js"></script> <script> const url = '/pdf/1.pdf'; pdfjsLib.getDocument(url).promise.then(pdf => { pdf.getPage(1).then(page => { const viewport = page.getViewport({ scale: 1.5 }); const canvas = document.getElementById('pdf-canvas'); const ctx = canvas.getContext('2d'); canvas.width = viewport.width; canvas.height = viewport.height; page.render({ canvasContext: ctx, viewport: viewport }); }); }); </script> <style> </style> </head> <body> <canvas id="pdf-canvas"></canvas> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>PDF全页渲染</title> <style> #pdf-container { margin: 20px auto; max-width: 800px; } .pdf-page { margin-bottom: 20px; border: 1px solid #ddd; } .page-controls { text-align: center; margin: 10px 0; } </style> </head> <body> <div id="pdf-container"></div> <div class="page-controls"> <button id="prev">上一页</button> <span id="page-num">1</span>/<span id="page-count">0</span> <button id="next">下一页</button> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.min.js"></script> <script> let pdfDoc = null, pageNum = 1, pageRendering = false, pageNumPending = null, scale = 1.5; const url = '/pdf/1.pdf'; const container = document.getElementById('pdf-container'); // 初始化PDF.js pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.min.js'; // 加载PDF文档 pdfjsLib.getDocument(url).promise.then(function(pdf) { pdfDoc = pdf; document.getElementById('page-count').textContent = pdf.numPages; // 初始渲染第一页 renderAllPages(pdf); }); // 渲染所有页面 function renderAllPages(pdf) { for (let i = 1; i <= pdf.numPages; i++) { const pageDiv = document.createElement('div'); pageDiv.className = 'pdf-page'; pageDiv.id = `page-${i}`; container.appendChild(pageDiv); renderPage(i, pageDiv); } } // 渲染单个页面 function renderPage(num, container) { pageRendering = true; pdfDoc.getPage(num).then(function(page) { const viewport = page.getViewport({ scale: scale }); const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); canvas.height = viewport.height; canvas.width = viewport.width; container.appendChild(canvas); const renderContext = { canvasContext: ctx, viewport: viewport }; page.render(renderContext).promise.then(function() { pageRendering = false; }); }); } </script> </body> </html>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
手机浏览 可以,上下左右 移动。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PDF Viewer</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf_viewer.min.css"> <style> #viewerContainer { position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: auto; } body { margin: 0; padding: 0; } </style> </head> <body> <div id="viewerContainer"> <div id="viewer" class="pdfViewer"></div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf_viewer.min.js"></script> <script> const pdfjsLib = window['pdfjs-dist/build/pdf']; const pdfjsViewer = window['pdfjs-dist/web/pdf_viewer']; pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.min.js'; const eventBus = new pdfjsViewer.EventBus(); const container = document.getElementById('viewerContainer'); const pdfViewer = new pdfjsViewer.PDFViewer({ container: container, eventBus: eventBus, }); eventBus.on('pagesinit', function() { pdfViewer.currentScaleValue = 'page-width'; }); async function loadPdf(url) { try { const loadingTask = pdfjsLib.getDocument(url); const pdfDocument = await loadingTask.promise; pdfViewer.setDocument(pdfDocument); } catch (reason) { console.error('Error loading PDF: ', reason); } } // 加载PDF文件(替换为你的PDF路径) loadPdf('/pdf/2.pdf'); </script> </body> </html>
站长微信:xiaomao0055
站长QQ:14496453