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

女性门户资讯类网站织梦dedecms模板百度推广app

女性门户资讯类网站织梦dedecms模板,百度推广app,wordpress视频解析主题,安阳市地图将PDF流转为图片展示在页面上 使用 pdfjs-dist 库来渲染 PDF 页面到 canvas 上,然后将 canvas 转为图片 安装 pdfjs-dist 依赖 npm install pdfjs-dist 或者 yarn add pdfjs-dist创建一个组件来处理 PDF 流的加载和渲染 该组件中是一个包含 PDF 文件的 ArrayBuffer…

将PDF流转为图片展示在页面上

使用 pdfjs-dist 库来渲染 PDF 页面到 canvas 上,然后将 canvas 转为图片

安装 pdfjs-dist 依赖

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

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

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

/** @format */import React, { useState, useEffect } from 'react';
// import { pdfjs } from 'pdfjs-dist';
var pdfjs = require('pdfjs-dist/es5/build/pdf.js');
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;const PdfToImage = ({ pdfData }) => {const [imageSrc, setImageSrc] = useState(null);const base64ToArrayBuffer = (base64) => {var binary_string = window.atob(base64);var len = binary_string.length;var bytes = new Uint8Array(len);for (var i = 0; i < len; i++) {bytes[i] = binary_string.charCodeAt(i);}return bytes.buffer;};useEffect(() => {const renderPDF = async (arrayBuffer) => {const loadingTask = pdfjs.getDocument({ data: arrayBuffer });try {const pdf = await loadingTask.promise;const page = await pdf.getPage(1); // 获取第一页const viewport = page.getViewport({ scale: 1.5 }); // 设置缩放比例const canvas = document.createElement('canvas');const canvasContext = canvas.getContext('2d');canvas.height = viewport.height;canvas.width = viewport.width;const renderContext = {canvasContext,viewport,};await page.render(renderContext).promise;// 将canvas内容转换为图片const imageSrc = canvas.toDataURL('image/png');setImageSrc(imageSrc);} catch (error) {console.error('Error rendering PDF:', error);}};// 首先将base64的PDF流转为ArrayBufferlet arrayBuffer = base64ToArrayBuffer(pdfData);// 然后将ArrayBuffer格式的数据转为图片renderPDF(arrayBuffer);}, [pdfData]);return <div>{imageSrc && <img src={imageSrc} alt="PDF as image" />}</div>;
};export default PdfToImage;

使用示例

这里的PDF_content 也可以直接使用 ArrayBuffer 或者 Uint8Array 的格式,直接传入组件,将组件中的 base64ToArrayBuffer 方法不使用即可。

import React from 'react';
import PdfToImage from './PdfToImage.jsx';render() {const PDF_content = 'XXXX....BYFhEdCmVuZHN0cmVhbQplbmRvYmoKc3RhcnR4cmVmCjg2NTkxCiUlRU9GCg=='// base64 格式return (<PdfToImage  pdfData={PDF_content}></PdfToImage>)}
http://www.tj-hxxt.cn/news/12824.html

相关文章:

  • 网站开发组西安关键词优化排名
  • 培训机构的网站建设页面优化算法
  • 绍兴网站建设设计网络域名综合查询
  • 匈牙利网站后缀今日国际重大新闻事件
  • 宝山手机网站制作公司百度广告点击一次多少钱
  • 临沂网站建设网站推广百度云网盘登录入口
  • 佛山做网站优化各种资源都有的搜索引擎
  • 企业网站怎么做优化百度广告销售
  • 太原小店区疫情最新通告seo引擎优化
  • 平面设计师推荐网站爱站网官网
  • 网站开发公司的销售方式手机清理优化软件排名
  • 濮阳网站建设在哪做最新新闻热点素材
  • 上海可靠的网站建设公司cnzz
  • 贵州省电力建设施工企业商会游戏优化软件
  • 网站jsp充值和体现系统怎么做看啥网一个没有人工干预的网
  • 优秀专题网站seo推广系统
  • 网站开发分类2023年第三波疫情9月
  • 南通网站建设推广站内关键词排名软件
  • dw博客网站怎么做竞价代运营公司哪家好
  • 企业招聘官网哈尔滨seo
  • 网站上线 flashcom域名多少钱一年
  • 建设网站需要的编程吸引人的营销标题
  • 河北汉佳 做网站的公司老鬼seo
  • 网站收索功能怎么做拉新app推广平台
  • 百度网盟网站有哪些网络推广是网络营销的基础
  • 内部网站建设党委网络优化app哪个好
  • 书画院网站建设方案百度提交入口地址在哪
  • 人大网站建设报价单东莞seo整站优化火速
  • 怎么做网站或APP软文模板300字
  • 做网站有哪些要求seo关键词如何设置