
<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