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

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

//vue、react中安装
npm install js-web-screen-shot --save
yarn add js-web-screen-shot

//vue3安装
yarn add vue-web-screen-shot
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黑屏或白屏问题

new ScreenShot({
   enableWebRtc: false,//关闭webRtc
   level: 99999,
   wrcWindowMode: true,
   hiddenToolIco: {
   square: true,
   round: true,
   rightTop: true,
   brush: true,
   mosaicPen: true,
   text: true,
   separateLine: true,
   save: true,
   undo: true
   },
   screenShotDom: document.getElementById('mainContainer'),//使用html2canvas获取节点区域
   completeCallback: callBack,
   triggerCallback: triggerCallback
})

禁用webRtc后,采用html2canvas绘画,在iframe内嵌的网页中去查找dom节点,给iframe设置一下宽高,如果你要截取iframe外部可能会出现一些问题。

最后运行效果就不需要再向浏览器授权,搞定!开心准时下班

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

如果用htmlcanvas模式则不需要注意,如果要用webRtc模式就需要看看官方文档,

传送门:https://www.kaisir.cn/js-screen-shot/docs/use-electron/

新颖网络截屏插件是一款能够非常方便的将屏幕截屏图片发送到WEB服务器中的轻量级ActiveX控件,它可以非常方便的集成到您的博客,BBS,论坛,OA,或电子商务网站中,带给用户前所未有的用户体验。 同时新颖网络提供了ASP.NET(C#)和PHP的开发文档,和完善的ActiveX接口,您可以非常容易的使用和进行二次开发。最新版本的截屏控件极大的优化了图片数据传输的效率,可以帮助用户节省约40%的上传时间。 相信新颖网络WEB截屏控件能够帮助您赢得市场。 产品特点如下: 1. 基于标准HTTP协议。 2. 支持Jpg图片格式。 3. 一流的用户体验,操作方便。 4. 增加截屏图片编辑器。可任意输入文字,绘制矩形箭头等。 5. 免费提供JavaScript SDK包,方便您将插件快速集成到已有网站中。 支持语言:PHP,JSP,ASP,ASP.NET(C#),ASP.NET(VB),C++,VC,VC.NET,VB,VB.NET,C#,C#.NET,Delphi,C++Builder 支持平台:Visual Studio 6.0/2002/2003/2005/2008/2010,C++ Builder 6.0/2009/2010,Delphi 7/2009,Visual Basic 6.0/2008 支持脚本:JavaScript,VBScript 支持系统:Windows NT,Windows 2003,Windows XP,Windows Vista,Windows 7,Linux 支持图片格式:PNG 产品介绍:http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html 在线演示-标准版:http://www.ncmem.com/products/screencapture/demo/index.html 在线演示-专业版:http://www.ncmem.com/products/screencapture/demo2/index.html 在线演示-CKEditor3.6.1:http://www.ncmem.com/products/screencapture/demo-ckeditor361/index_ckeditor361.html 布署文档:http://www.cnblogs.com/xproer/archive/2011/09/14/2176188.html 升级日志:http://www.cnblogs.com/xproer/archive/2010/12/04/1896399.html 开发文档-ASP.NET(C#):http://www.cnblogs.com/xproer/archive/2010/12/04/1896552.html 开发文档-PHP:http://www.cnblogs.com/xproer/archive/2011/05/16/2047915.html 开发文档-JSP:http://www.cnblogs.com/xproer/archive/2011/05/20/2051862.html 示例下载-标准版:http://www.ncmem.com/download/ScreenCapture-demo.rar 示例下载-专业版:http://www.ncmem.com/download/ScreenCapturePro-demo.rar 文档下载:http://www.ncmem.com/download/ScreenCapture-doc.rar VC运行库:http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf 联系邮箱:1085617561@qq.com 联系QQ:1085617561
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值