在使用umi构建的react项目中如何实现预览pdf ??如果PDF中包含印章该如何使印章展示出来???

1.安装依赖

yarn add react-pdf

  • react-pdf: https://github.com/wojtekmaj/react-pdf

我项目中使用的react-pdf版本为5.2.0。

2. 加载workerSrc

  1. imprt { pdfjs } from 'react-pdf';
  2. 在app.ts文件中指定workerSrc加载资源路径:pdfjs.GlobalWorkerOptions.workerSrc = https://xxx.pdf.worker.min.js;,umi会在运行时会自动执行app.ts。

需要注意的是资源版本必须与react-pdf版本匹配,我项目总使用的是2.5.207: 对应使用https://cdn.bootcdn.net/ajax/libs/pdf.js/2.5.207/pdf.worker.js

3. 基本使用

// 导入组件
import { Document, Page } from reacf-pdf;// 保存PDF当前页数,用于实现翻页
const [current, setCurrent] = useState(1);
// 总页数,用于实现翻页
const [total, setTotal] = useState();// render
<Pagination simple current={current} total={total} onChange={(current) => setCurrent(page)}
<Documentoption={{cMapUrl:"“https://xxx.cmaps/", // 预定义的 Adob​​e CMap 所在的 URL。包括尾部斜杠。cMapPacked: true, // 指定 Adob​​e CMap 是否为二进制打包。}}renderMode="canvas" // 定义文档呈现形式file={pdfUrl} // pdf,可以是一个URL、File、或者包含url、data、range、httpHeaders的对象onLoadSuccess={({ numPages }) => setTotal(pageNumber)}
><PagepageNumber={nowPage} //当前页码/>
</Document>
  1. 必须指定 CMap 的 基础 参数: cMapUrlcMapPacked
  2. 您需要从 pdfjs-dist 复制 cMapsReact-PDF 的依赖项 - 如果您安装了 React-PDF,它应该在您的 node_modules 中)。 cMaps 位于 pdfjs-dist/cmaps

4. 显示印章

客户在浏览器中使用开源PDF.JS插件预览签署后的PDF文件时会遇到无法显示电子签章的情况,这是因为PDF.JS因无法进行校验电子签名故而默认隐藏了电子签章。
如果需要显示电子签章则需要在pdf.worker.js中找到以下代码并进行注释

if (data.fieldType === "Sig") {data.filedValue = null;//this.setFlags(_util.AnnotationFlag.HIDDEN); //注释此行后可显示电子签章
}

或者某些版本的PDF.JS需要在pdf.worker.js中找到如下代码并进行注释

var parent = Annotation.prototype;
Util.inherit(WidgetAnnotation,Annotation,{isViewable:function WidgetAnnotation_isViewable(){ // 注释掉if判断,不让它返回false/* if (this.data.fieldType === 'Sig') {warn('unimplemented annotation type: Widget signature');return false;}*/return parent.isViewable.call(this); }
});

最后看下效果图

使用react-pdf预览pdf相关推荐

  1. 一个使用js做的一个PDF预览PDF标注(在线批注)工具

    一个使用js做的一个PDF预览&PDF标注工具 核心主要使用pdf.js以及操作canvas 目前支持web端,windows端,mac端,可npm包引入项目 目前支持的功能有大文件预览.缩略 ...

  2. vue 项目中实现pdf预览 pdf打印 pdf下载

    在Vue项目中实现PDF预览.打印和下载可以通过以下步骤来实现: 安装pdf.js pdf.js是一个JavaScript库,可以用于在Web上渲染PDF文件. 可以使用npm安装pdf.js,命令如 ...

  3. pdf预览 pdf.js+pdfObject

    1.下载pdf.js 第一步,下载源码:git clone git://github.com/mozilla/pdf.js.git (直接github下载zip 不能直接使用) 第二步 ,cd pdf ...

  4. pdf预览-pdf.js预览base64格式的数据

    前言 pdf.js框架的魅力所在,为其为HTML5实现的,无需任何本地支持,而且对浏览器的兼容性也是比较好,要求只有一个:浏览器支持HTML5就好了!(不过对于低版本的IE,就只能节哀了!) 以下是p ...

  5. uniapp移动端H5在线预览PDF等文件实现源码及注解

    uniapp移动端H5预览文件实现分为两个场景处理: (这里以预览PDF文件为示例,在线预览就是查看网络文件) 1. IOS客户端预览PDF文件 IOS客户端预览PDF文件可以通过跳转文件地址实现预览 ...

  6. React文件预览,React实现在线预览docx,xslx,pdf格式文件

    一.前言 由于项目需要实现文件的预览功能,通过查询百度找到了一个组件,就是react-file-viewer,其官方API中描述可支持文件格式有以下格式: 图片:png,jpeg,gif,bmp,包括 ...

  7. react pdf预览

    pdf预览很强大的插件是pdf.js,这是原生js实现的插件,能兼容大部分浏览器,对于它的使用方法,在传统的web项目中就是viewer.html?file="文件名称",但是对于 ...

  8. pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件。

    pdfh5.js 基于pdf.js和jQuery,web/h5/移动端PDF预览手势缩放插件. 注意:本地绝对路径地址不能加载,跨域问题用代理或者服务端解决. svg模式渲染存在缺陷,只能渲染普通pd ...

  9. PDF 预览和下载你是怎么实现的?

    在开发过程中要求对 PDF 类型的发票提供 预览 和 下载 功能,**PDF** 类型文件的来源又包括 H5 移动端 和 **PC 端**,而针对这两个不同端的处理会有些许不同,下文会有所提及. 针对 ...

  10. SpringBoot(十五)_springboot实现预览pdf

    最近,项目上要做个打印的东西,还要预览.我想就直接生成pdf预览,然后用户选择打印 于是,昨天找了找资料.一般用itext 进行转pdf.于是我就用springboot试了试,代码比较简单,现在只是简 ...

最新文章

  1. MEF程序设计指南七:使用目录(Catalog)动态装载xap与目录筛选(Filtered Catalog)...
  2. Stern-Brocot树
  3. windows 下XAMPP 使用Nginx替代apache作为服务器
  4. hive Illegal Operation state transition from CLOSED to ERROR的处理
  5. MySQL-[Err] 1055 - Expression #1
  6. redis stream持久化_一文了解:Redis的RDB持久化
  7. 接口向mapper传参数
  8. oracle怎么删除存储,删除Oracle分区存储是一个怎样的过程?
  9. 差异性发展 - 浙江工商局长郑宇民“智斗”央视女主持董倩
  10. VS快速定位文件、代码插件——DPack
  11. cesium 漫游飞行_cesium 之三维漫游飞行效果实现篇(附源码下载)
  12. Git版本控制管理(一)--安装
  13. 自我保护第一课加密与防破解
  14. 所有电商API接口,淘宝API接口分类,1688API、拼多多API、京东API
  15. 一套键鼠操控多台电脑Mouse without Borders
  16. lzma打包exe_【原创】手写PE文件,打造史上最小LZMA解压DLL
  17. Leetcode 523 连续的子数组和 前缀和 + 哈希表
  18. IntelliJ IDEA自动引入jar包
  19. C++ —— (两个经纬度计算距离、方位角)、(经纬度A+距离+方位,计算目标经纬度)、(多个经纬度计算面积)
  20. 个人云电脑-推荐方案 - Parsec / Fastlink

热门文章

  1. 雷士灯wifi控制方法_雷士照明驱动 WiFi 可调光 怎么设置
  2. 串口调试助手、网络调试助手
  3. CFA Notes第一遍完成
  4. 高通MSM8937芯片参考资料免费下载
  5. 软件测试基础知识+面试
  6. JavaScript url 编码转换
  7. SSIM(结构相似性)-数学公式及python实现
  8. 经纬度距离、范围、方位角计算、坐标转换
  9. 119、交换机基本配置命令
  10. mumu 模拟器连不上adb