最近搜索

pdf 网页打开pdf pdf浏览 在线浏览pdf

浏览:10
管理员 2025-08-07 22:48

image.png



打开 第一页pdf

<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>

image.png


渲染全部pdf

<!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

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">


image.png

手机浏览 可以,上下左右 移动。




手机预览pdf pdf-viewer  pdf很宽很大的话有点不清

<!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