PDFjs提取文件中的图片

PDF.js提取PDF文件中的图片

需求

使用PDFjs库在网页中展示pdf文件,要求PDF文件中的插入的图片可以拖拽出来。

步骤

从PDFjs官网下载源码

下载地址:https://github.com/mozilla/pdf.js

编译环境搭建

根据代码中的[README.md]文件的的说明搭建开发环境(开发工具我的用的是vscode)。
先要安装node.js
再根据里面的提示操作

1.安装gulp
$ npm install -g gulp-cli

2.安装PDFjs依赖包
$ npm install

3.启动测试服务
$ gulp server

一切正常的话就可以通过下面的地址访问了
http://localhost:8888/web/viewer.html?file=test.pdf

修改代码

pdf.js是使用canvas渲染的,所以我们需要在canvas渲染画像的处理中,把画像对象单独提取出来。
研究canvas的代码发现里面已经预留了图片提取的处理但是没有实现,我们只需要找一个展示层实现这个处理即可。
1.我们使用原来显示文本的图层加载提取出来的图片
在创建canvas渲染类的时候,把显示文本的textLayer变量传进去。
修改文件pdf_page_view.js(源代码这里是留了这个参数的,但是没有传参数)
在这里插入图片描述
2.修改canvas.js处理,把处理中的画像传给展示层处理(修改已有的处理)
scaled.img存储的是图片的canvas对象,我们把它转成base64直接传给展示层
3.修改text_layer_builder.js文件增加图片添加处理在这里插入图片描述

编译

通过下面这个命令就可以生成打包文件
$ gulp generic
生成文件在 ./build/generic 这个目录下,整个目录拿过来就可以使用了
./generic/web/viewer.html?file=target.pdf

好了,终于可以把PDF里面的画像元素以<img>的形式显示出来,可以拖拽。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值