web端页面截图插件之js-web-screen-shot

打印 上一主题 下一主题

主题 859|帖子 859|积分 2577

1、先容

js-web-screen-shot可以在web端,对页面举行截图操作,并可以对截图的部分举行添加文字,框选等操作,类似于你用QQ、微信截图的时间......插件提供了两种模式:webRtc和html2canvas,在后面有先容这两种的使用环境。

需求配景:最近接到一个新需求,在PC web端做一个PDF查看器,并举行编辑讲明。然后就遇到了某些PDF文件,它不按正常操作来,PDF中很多图片上的文字无法举行编辑讲明,那么就必要我们先对其举行截图,然后识别图片中的文字。
2、着手开辟

在开辟前,就会先分析一下思路:先利用截屏或者截图,将图片保存下来,然后通过OCR识别图片中的文字,返回结果到粘贴板。首先想到了html2canvas,npm install html2canvas --save,improt html2canvas from html2canvas,一顿操作猛如虎,一看结果,握草~一片黑,咋回事......
搜刮资料发现了大题目,资料在这里:html2canvas插件在iframe中使用的优化
资料内里详细的先容了为什么和解决办法。
后面在github中又找到了一个js-web-screen-shot
官网地址:https://www.kaisir.cn/js-screen-shot/
github地址:https://github.com/likaia/js-screen-shot
vue3版本:https://www.npmjs.com/package/vue-web-screen-shot,切记现在该版本只支持vue3,如果要在vue2或者react中使用照旧安装js-web-screen-shot
  1. //vue、react中安装
  2. npm install js-web-screen-shot --save
  3. yarn add js-web-screen-shot
  4. //vue3安装
  5. yarn add vue-web-screen-shot
  6. npm install vue-web-screen-shot --save
复制代码
多的就不说了,上面资料中很详细 
3、实际运行效果


我是集成到PDF插件中的,还用了OCR图片识别,所以可以识别文字返回结果
 4、结尾

js-web-screen-shot运用了webRTC和html2canvas两种作为截屏,各有各的上风,各有各的劣势。我这个是pdf插件内嵌的iframe,PDF插件是用react开辟打包后引入到vue项目中,如果你是在iframe内部使用的方法,那么恭喜你没题目,在外部使用截图插件的话,可能会出现一些无法截图、黑屏、白屏等题目
此外用webRTC模式截屏,必要向欣赏器获取权限,增加了用户点击次数,体验感不是很好。现在只能被迫接受
5、更新【2024-08-22】解决iframe黑屏或白屏题目

  1. new ScreenShot({
  2.    enableWebRtc: false,//关闭webRtc
  3.    level: 99999,
  4.    wrcWindowMode: true,
  5.    hiddenToolIco: {
  6.    square: true,
  7.    round: true,
  8.    rightTop: true,
  9.    brush: true,
  10.    mosaicPen: true,
  11.    text: true,
  12.    separateLine: true,
  13.    save: true,
  14.    undo: true
  15.    },
  16.    screenShotDom: document.getElementById('mainContainer'),//使用html2canvas获取节点区域
  17.    completeCallback: callBack,
  18.    triggerCallback: triggerCallback
  19. })
复制代码
禁用webRtc后,采用html2canvas绘画,在iframe内嵌的网页中去查找dom节点,给iframe设置一下宽高,如果你要截取iframe外部可能会出现一些题目。
末了运行效果就不必要再向欣赏器授权,搞定!开心准时下班

6、更新【2024-09-10】Electron桌面端必要注意(避坑)

如果用htmlcanvas模式则不必要注意,如果要用webRtc模式就必要看看官方文档,
传送门:https://www.kaisir.cn/js-screen-shot/docs/use-electron/
7、更新【2024-10-22】页面嵌套iframe

父页面嵌套iframe子页面,由于父级页面无法获取iframe内子级页面的节点,此时必要用到截图的话,则必要在嵌套的子页面去使用截图插件


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表