美文网首页
使用react-pdf在html展示pdf文件,达到显示所有页并

使用react-pdf在html展示pdf文件,达到显示所有页并

作者: 寒冰助手 | 来源:发表于2021-01-25 18:39 被阅读0次

完整代码

import React, { Component, useState } from 'react';
import { Document, Page } from "react-pdf";
import myPdf from './test.pdf'
import { pdfjs } from 'react-pdf';
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;


const pdfFile = myPdf


class Pdf extends Component {
    state = {
        numPages: null,
        pageNumber: 1,
    }

    onDocumentLoadSuccess = ({ numPages }) => {
        this.setState({ numPages });
    }

    render() {
        const { pageNumber, numPages } = this.state;
        var clientWidth = window.screen.width;
        var scale=(clientWidth/595).toFixed(2)
        console.log(scale)
        return (
            <div>
                <Document file={pdfFile}  onLoadSuccess={this.onDocumentLoadSuccess} loading="">
                        {
                            new Array(numPages).fill('').map((item, index) => {
                                return <Page key={index+1} pageNumber={index+1}  scale={scale} />
                            })
                        }
                </Document>
             </div>
        );
    }
}
export default Pdf

关键点

1.把pdf文件放在同级目录后引入

import myPdf from './test.pdf'

2.文件头加上:

import { pdfjs } from 'react-pdf';
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;

否在会报如下错误:


image.png
image.png

3.pdf缩放比例适应页面宽度

//获取页面宽度
var clientWidth = window.screen.width;
//计算缩放比例(595为浏览器控制台获取到的原pdf的canvas属性的宽度,该属性导致pdf宽度无法适配页面宽度)
var scale=(clientWidth/595).toFixed(2)

4.将缩放比例给到page的scale属性

scale={scale}

相关文章

网友评论

      本文标题:使用react-pdf在html展示pdf文件,达到显示所有页并

      本文链接:https://www.haomeiwen.com/subject/sieizktx.html