当前位置: 首页 > news >正文

幸福宝推广app网站下载上海缔客网站建设公司

幸福宝推广app网站下载,上海缔客网站建设公司,建个公司网站一年多少钱,互联网营销培训的课程学费react: ^17.0.2 1.react去预览pdf文件#xff0c;并且这个组件可以在移动端展示#xff0c;但要注意安装版本 react-pdf: ^5.7.2 直接上代码了#xff0c;做了一个两页的分页#xff0c;因为放在移动端有个问题#x…   react: ^17.0.2  1.react去预览pdf文件并且这个组件可以在移动端展示但要注意安装版本 react-pdf: ^5.7.2 直接上代码了做了一个两页的分页因为放在移动端有个问题有个文件全部加载手机就卡死了但这个分页也没解决问题换了个文件就是好的代码能优化的地方比较多自行优化 import React, { useState, useEffect, useCallback } from react; import { Page, pdfjs } from react-pdf; import { Document } from react-pdf/dist/esm/entry.webpack;pdfjs.GlobalWorkerOptions.workerSrc //cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js;const PdfViewer ({ file }: any) {const [page_jsx, set_page_jsx]: [any[], React.DispatchReact.SetStateActionany[]] useStateany[]([]);const [totalPages, setTotalPages]: [number, React.DispatchReact.SetStateActionnumber] useState(0);const [end_num, set_end_num]: [any, React.DispatchReact.SetStateActionany] useState(6);const viewMore useCallback(() {let current_end_num end_num 5 totalPages ? end_num 5: totalPages;set_end_num(current_end_num);const array [];for (let i current_end_num - 6; i current_end_num; i) {array.push(i);}let pageJsx array?.map((a: any) Page scale{.5} key{page_${a}} pageNumber{a 1}/);set_page_jsx((jsx_arr: any[]) [...jsx_arr, ...pageJsx]);}, [end_num, totalPages, set_end_num, set_page_jsx])useEffect(() {const array [];if (end_num 6) {for (let i totalPages 6 ? 0: end_num - 6; i (totalPages 6 ? totalPages: end_num); i) {array.push(i);}let pageJsx array?.map((a: any) Page scale{.5} key{page_${a}} pageNumber{a 1}/);set_page_jsx((jsx_arr: any[]) [...jsx_arr, ...pageJsx]);}}, [end_num, set_page_jsx, totalPages])return (div style{{ width: 100%, height: 100vh, overflow: auto }}DocumentclassName{pdf-content}file{file}onLoadSuccess{({ numPages }: any) setTotalPages(numPages)}{page_jsx?.map((page: any) page)}{totalPages end_num div style{{height: 40px, lineHeight: 40px, textAlign: center}} onClick{() viewMore()}View more/div}/Document/div); };export default PdfViewer; 2.   pdfjs-dist pdfjs-dist: ^2.5.207这个插件的版本尤其要记录下网上查了好多只把代码放上去如果版本不对引入文件路径是不存在的那么还是直接放代码吧如第一种方法自行优化下 import React, { useCallback, useEffect, useRef, useState } from react; const pdfjsLib require(pdfjs-dist/es5/build/pdf.js);pdfjsLib.GlobalWorkerOptions.workerSrc //cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjsLib.version}/pdf.worker.js;const PdfViewer ({ file }: any) {const [totalPages, setTotalPages]: [number, React.DispatchReact.SetStateActionnumber] useState(0);const [end_num, set_end_num]: [any, React.DispatchReact.SetStateActionany] useState(6);const canvasRefs: any useRef([]);const pageNums: any useRef([]);const renderPage useCallback(async (pdf: any, endNum: any) {pageNums.current new Array(endNum)?.fill(0).map((_, i) i 1);// 渲染每一页for (let i totalPages 6 ? 1: endNum - 5; i (totalPages 6 ? totalPages: endNum); i) {const page await pdf.getPage(i);const viewport page.getViewport({ scale: 1.5 });// 创建canvas元素const canvas document.createElement(canvas);const context canvas.getContext(2d);canvas.height viewport.height;canvas.width viewport.width;// 将canvas添加到DOM中const canvasContainer: any document.getElementById(pdf-container);canvasContainer.appendChild(canvas);// 存储canvas的引用以便后续操作canvasRefs.current[i - 1] canvas;// 渲染页面const renderContext {canvasContext: context,viewport: viewport};await page.render(renderContext);}}, [totalPages])useEffect(() {async function loadPdf() {const loadingTask pdfjsLib.getDocument(file);const pdf: any await loadingTask.promise;// 获取总页数const numPages: any pdf.numPages;setTotalPages(numPages);renderPage(pdf, end_num);}if (file end_num 6) {loadPdf();}}, [file, end_num, renderPage])return (div idpdf-container{/* 在这里canvas元素将被动态添加到这个容器中 */}/div{totalPages end_num div onClick{async () {if (end_num totalPages) {let current_end_num end_num 5 totalPages ? end_num 5: totalPages;set_end_num(current_end_num);const loadingTask pdfjsLib.getDocument(file);const pdf: any await loadingTask.promise;renderPage(pdf, current_end_num);}}} style{{height: 40px, lineHeight: 40px, textAlign: center}}View more/div}/); };export default PdfViewer;
http://www.pierceye.com/news/406959/

相关文章:

  • 淮安市建设监理协会网站家装网站做
  • 深圳专业营销网站建站网站插件
  • 企业网站建设专业精准丨 鸣远科技网站建设会议验收
  • 网站建设在哪里做比较好广东网站设计公司
  • 什么叫域名访问网站六安网络科技有限公司
  • 江苏省城乡与建设厅网站首页文山网站建设兼职
  • 做网站用什么系统好二手商标网
  • 福州网站建设公司哪个好做芯片代理哪个网站推广
  • 怎么制作钓鱼网站链接乐山网站营销推广哪家公司好
  • 一键网站制作定制网站型网站开发
  • 营销型网站开发流程包括辽宁建设工程信息网新网址
  • 宁德企业网站建设网站开发成本包括
  • 茂名建设中专学校网站如何做国际贸易网站
  • 自己办网站网站开发多久
  • wordpress 图表插件网站seo找准隐迅推
  • 欧美网站设计网站制作基础教程
  • wordpress显示icp备案号手机关键词排名优化
  • 网站建设与管理属于什么部门自助建站 知乎
  • 成都网站开发哪个好常州建网站
  • 陕西住房与城乡建设厅网站从化市营销型网站建设
  • 如何在网站上做推广自己做网站的图片
  • 珠海模板网站建设wordpress 底部工具栏
  • 网站建设的业务流程图招聘网站上找在家做
  • 网站设计的工具盱眙在仕德伟做网站的有几家
  • 建设一个网站要花多少时间临沂网站网站建设
  • 南宁网站推广经理做动漫网站如何应用数据绑定
  • 眼镜东莞网站建设兰州公司做网站
  • 改成 响应式 网站重庆微信企业网站
  • 用微信怎么做商城网站微信官网下载安装
  • 汽车网站建设方案预算md风格的wordpress主题