您的位置:首页 > 健康 > 美食 > 加强网络安全建设_从广州回来需要隔离吗?_外链百科_seo全网优化指南

加强网络安全建设_从广州回来需要隔离吗?_外链百科_seo全网优化指南

2024/12/22 9:52:09 来源:https://blog.csdn.net/qq_38799237/article/details/144418950  浏览:    关键词:加强网络安全建设_从广州回来需要隔离吗?_外链百科_seo全网优化指南
加强网络安全建设_从广州回来需要隔离吗?_外链百科_seo全网优化指南

将PDF流展示在页面上

使用 pdfjs-dist 库来渲染 PDF 页面到 canvas 上进行绘制展示

安装 pdfjs-dist 依赖

npm install pdfjs-dist
或者
yarn add pdfjs-dist

创建一个组件来处理 PDF 流的加载和渲染

该组件中是一个包含 PDF 文件的 Base64。
将 pdf 流传入该组件中使用

/** @format */import React, { useState, useEffect, useRef } from 'react';
var pdfjsLib = require('pdfjs-dist/es5/build/pdf.js');
// eslint-disable-next-line import/first
import 'pdfjs-dist/es5/build/pdf.worker.entry';const PdfViewer = ({ url, id }) => {const [pageNumbers, setPageNumbers] = useState(0);const [currentPage, setCurrentPage] = useState(1);const [loading, setLoading] = useState(true);const [rendering, setRendering] = useState(false);const pdfRef = useRef(null);function renderPdf(pdfFile) {let canvas = document.getElementById(id);let canvasContext = canvas.getContext('2d');pdfFile.getPage(currentPage).then((page) => {//逐页解析PDFvar viewport = page.getViewport({ scale: 5 }); // 页面缩放比例,值越大越清晰canvas.height = viewport.height;canvas.width = viewport.width;canvasContext.clearRect(0, 0, canvas.width, canvas.height);var renderContext = {canvasContext: canvasContext,viewport: viewport,rotate: 90,};setRendering(true);page.render(renderContext).promise.finally(() => {setRendering(false);}); //渲染生成});}useEffect(() => {let loadingTask = pdfjsLib.getDocument({url: url,//cMapUrl: './cmaps/',//cMapPacked: true,});loadingTask.promise.then((pdf) => {// console.log(pdf.numPages);pdfRef.current = pdf;setPageNumbers(pdf.numPages);renderPdf(pdf);}).catch((error) => {console.log(error);}).finally(() => {setLoading(false);});}, []);useEffect(() => {if (pdfRef.current) {window.scrollTo({ top: 0 });renderPdf(pdfRef.current);}}, [currentPage]);return (<div><canvas id={'pdf' + id} style={{ width: '100%' }} /></div>);
};export default PdfViewer;

使用示例

import React from 'react';
import PdfViewerfrom './PdfViewer.jsx';render() {const url= 'XXXX....BYFhEdCmVuZHN0cmVhbQplbmRvYmoKc3RhcnR4cmVmCjg2NTkxCiUlRU9GCg=='// base64 格式return (<PdfViewer id={'pdf_file'} url={`data:application/pdf;base64,${url}`}></PdfViewer>)}

使用问题

在使用的过程中,有一个项目是可以的,但是另一个项目会报错,如下图:

在这里插入图片描述
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com