精华内容
下载资源
问答
  • DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>html2canvas_download</title> <style> a { cursor: pointer; color: rgb(85, 26, 139); text-decoration...
  • JAVA HTML截图.rar

    2015-08-08 11:19:26
    通过JAVA截图的方式将HTML转换为图片格式JAVA HTML截图.rar
  • html5 实现网页截屏

    2014-12-17 19:56:09
    html5 实现网页截屏 html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。
  • HTML+CSS截图工具

    2018-07-20 13:56:19
    超好用的开发截图工具、识别色值大小等元素 谁用谁知道
  • Java通过phantomjs实现html截图

    千次阅读 2018-05-15 15:48:31
    二、Java代码那块( 这边实现会在服务器生成一个本地html文件,调用phantomjs读取本地html文件进行截图) 代码只贴了部分代码,复制过去需要自行调整才能执行 private static final String EXE_COMMAND = ...

    功能: 实现是卡片分享的功能

    开始技术选型选的是DJNativeSwing,但是windows是可以使用,发布到linux就不行了。虽然参照前辈方法进行解决,还是一直报org.eclipse.swt.SWTError:No more handles [gtk_init_check() failed]异常。在长时间未解决这个问题。只好

    一、服务器安装 phantomjs 工具

        1、解压安装包phantomjs-2.1.1-linux-x86_64.tar  

        2、设置环境变量 exportPATH=/usr/local/phantomjs-2.1.1-linux-x86_64/bin:$PATH

        3、安装phantomjs相关包(图片字体)

         sudo yum install bitmap-fontsbitmap-fonts-cjk

        4、安装完成测试

            cd /usr/local/phantomjs-2.1.1-linux-x86_64/examples

            phantomjs hello.js

            查看结果是否打印:hello,world!

        5、碰到特殊字体linux上没有。需要导入字体 

                新建目录/usr/share/fonts/newfonts

                将font.zip压缩包解压到newfonts文件夹

                sudo mkfontscale

                sudo mkfontdir

                sudo fc-cache –fv

    二、Java代码那块( 这边实现会在服务器生成一个本地html文件,调用phantomjs读取本地html文件进行截图)

    代码只贴了部分代码,复制过去需要自行调整才能执行

    private static final String EXE_COMMAND = "phantomjs";
    
    private static final String BLANK = "  ";
    
    /**
    	 * 
    	 * <p>     
    	 * Description: 删除html文件/判断文件是否生成成功 返回结果是否成功
    	 * </p>  
    	 * @author  ---
    	 * @created 2018年1月19日 上午9:54:01
    	 * @param result phantomjs返回结果
    	 * @param shareCardPath 生成卡片路径
    	 * @param resultHtmlAddress html地址
    	 * @return  boolean
    	 */
    private boolean handleResult(String result,String shareCardPath, String resultHtmlAddress,boolean checkFileIsCreate) {
    Process process = Runtime.getRuntime().exec(PhantomjsService.EXE_COMMAND + BLANK //你的phantomjs.exe路径
    
    					+ getExeScriptPath() + BLANK // 截图 javascript脚本的存放路径
    					+ resultHtmlAddress + BLANK //你的目标url地址
    					+ shareCardPath);//你的图片输出路径
    			inputStream = process.getInputStream();
    			reader = new BufferedReader(new InputStreamReader(inputStream));
    			String result = reader.readLine();
    			return handleResult(result,shareCardPath, resultHtmlAddress);
    
    }

    createArticleCard.js 代码:

    var webPage = require('webpage');
    var system = require('system');
    var address = system.args[1];
    var output = system.args[2];
    var page = webPage.create();
    page.viewportSize = {
    	width : 750,
    	height : 100
    };
    page.open(address, function(status) {
    	if (status == "success") {
    		var length = page.evaluate(function(s) {
    			var div = document.getElementById("screenshot");
    			var bc = div.getBoundingClientRect();
    			var top = bc.top;
    			var left = bc.left;
    			var width = bc.width;
    			var height = bc.height;
    			window.scrollTo(0, 10000);// 滚动到底部
    			return [ top, left, width, height ];
    		});
    		page.clipRect = {
    			top : length[0],
    			left : length[1],
    			width : length[2],
    			height : length[3]
    		};
    		page.render(output);
    		console.log("success");
    		phantom.exit();
    	} else {
    		console.log(status);
    		phantom.exit(1);
    	}
    });


    展开全文
  • 通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据,这篇文章主要介绍了puppeteer实现截图的示例代码,感兴趣的可以了解一下
  • 最近在项目中遇到一个需求,需要提供网页截图的功能。百度下发现html2canvas很好用。那就试试吧。 资源下载地址 插件下载地址:html2canvas下载地址 使用方式 项目使用的react组件开发方式。参照官方的说明文档...
  • .net core 使用Puppeteer Sharp后台生成 html截图PuppeteerPuppeteer Sharp一些使用上的问题 Puppeteer Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库 Puppeteer Sharp Puppeteer ...

    .net core 使用Puppeteer Sharp后台生成 html截图

    Puppeteer

    Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库

    Puppeteer Sharp

    Puppeteer Sharp(https://github.com/kblok/puppeteer-sharp) 则是c#对Puppeteer Node的调用的封装库。使用它我们可以用c#代码简单调用Puppeteer从网页爬取数据,或者将网页转换成图片或者pdf,这篇文章主要是截图方面的内容

    一些使用上的问题

    具体的api调用可参考github上的文档和sample代码,我这里只是简单记录一下使用上的坑:

    1. puppeteer需要Chromium 内核用以加载网页,所以要先调用类库的下载sdk,他自动帮你下载Chromium ,这也可能导致第一次没有Chromium会卡一阵子,因为在下载 ;
    2. Chromium 在linux上的调用需要装一些环境支持,挺多的,具体可以参考谷歌,装完因为安全性问题可能还要设置沙箱启动,不然在linux上可能报错,而且linux上如果中文汉字显示成方块□□这样,还要安装一些字库支持,在windows环境倒是方便挺多的;
    3. Puppeteer Sharp支持通过url,html字符串,html文件等方式加载网页,记得html字符串或文件时可能因为js,css,图片是相对路径导致加载失败;
    4. 有的复杂网页可能要加载一段时间,不然截图是空白或者不完整的,可以延时或者使用类库提供的等待方法
    展开全文
  • 主要介绍了html5使用html2canvas实现浏览器截图的示例,非常具有实用价值,需要的朋友可以参考下
  • 通过网站url批量获取html页面截图,将网站的缩略图显示到listview里,边抓取边显示,支持进度条,listview项支持右键菜单
  • html2canvas官网:http://html2canvas.hertzen.com/ 一、下载: npm install html2canvas --save 二、项目页面中引入: import html2canvas from 'html2canvas' components: { html2canvas }, 三、将你需要截取...

    html2canvas官网:http://html2canvas.hertzen.com/

    一、下载:

    npm install html2canvas  --save
    

    二、项目页面中引入:

    import html2canvas from 'html2canvas'
    
    components: {
      html2canvas
    },
    

    三、将你需要截取的部分用 id 包裹起来,截的就是改区域:

    //触发截屏事件
    <div @click="handleOk">
       <img style="width: 60px;margin-bottom: 15px" src="@/assets/img/knowledge/feedback.png">
    </div>
    
    //id包裹需要截屏的部位
    <div id="capture" style="padding: 10px; background: #f5da55">
        <h4 style="color: #000; ">Hello world!</h4>
    </div>
    
    //弹窗为了显示出截屏图片
    <el-dialog modal-append-to-body
                   append-to-body
                   title="问题反馈"
                   top="50px"
                   :visible.sync="problemDialog"
                   width="60%">
          <div>更多建议</div>
          <el-input type="textarea"
                    style="margin: 20px 0;"
                    placeholder="请输入内容"
                    v-model="form.text"></el-input>
          <el-checkbox v-model="checked">同时提交文章内容的截图并标记</el-checkbox>
          <div v-loading="flag"
               element-loading-text="正在截取屏幕数据"
               class="screenshot__img">
            <img :src="form.img"
                 width="100%" />
          </div>
          <div slot="footer"
               style="text-align: center">
            <el-button type="primary"
                       icon="el-icon-check"
                       @click="handleSubmit">提 交</el-button>
          </div>
        </el-dialog>
    
    data() {
        return {
          form: {
            img: '',
            text: ''
          },
          problemDialog:false,
        }
      }
      
    computed: {
        flag () {
          return this.validatenull(this.form.img);
        }
      },
    
    methods: {
        handleSubmit() {
          this.problemDialog = false;
          this.$message.success('反馈提交成功')
        },
        handleOk() {
          this.form = {
            img: '',
            text: ''
          }
          html2canvas(document.querySelector("#capture")).then(canvas => {
            this.form.img = canvas.toDataURL("png"); // 获取生成的图片的url
            // console.log(this.form.img)
          })
          this.problemDialog = true;
        }
      }
    
    <style scoped>
    .screenshot {
        position: fixed;
        bottom: 50px;
        right: 20px;
        z-index: 2048;
      }
    </style>
    

    注:id区域可自行修改。

    后来有需求将截屏要上传服务保存后台,截屏得到的是base64,故:

    截屏产生的base64转file文件,并上传服务

    handleSubmit () {
          console.log(this.form.img, '截屏后的base64')
          this.imgGs = this.form.img.split(';')[0].split('/')[1]
          var file = this.dataURLtoBlob(this.form.img, '33333.' + this.imgGs)
          var formData = new FormData()
          formData.append('file', file)
          this.axios.post('/admin/sys-file/upload', formData).then((response) => {
            this.form.wjmc = response.data.data.bucketName + '-' + response.data.data.fileName
            problemFeedback(this.form).then(res=>{
              if(res.data.code==0){
                this.problemDialog = false;
                this.$message.success('反馈提交成功')
              }
            })
          })
        },
        
    //将base64转换为file文件
     dataURLtoBlob: function(dataurl, name) {
          var arr = dataurl.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]),
            n = bstr.length,
            u8arr = new Uint8Array(n)
          while (n--) {
            u8arr[n] = bstr.charCodeAt(n)
          }
          return new File([u8arr], name, { type: mime })
        },
    

    效果如图:
    在这里插入图片描述

    展开全文
  • 主要介绍了spring(java,js,html) 截图上传图片实例详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 使用html2canvas库实现一个简单截图功能,功能简单,效果可看博客: https://blog.csdn.net/qq_37902949/article/details/81056199
  • java 使用html2canvas实现屏幕截图

    千次阅读 2016-11-07 15:30:33
    http://www.cnblogs.com/dreammyle/p/4872574.html案列:前段使用jsp页面,处理代码为Controller层代码。 js插件: 1、jquery-2.1.4.min.js 2、...

    知识点参考:
    http://www.cnblogs.com/dreammyle/p/4872574.html

    案列:

    前段使用jsp页面,处理代码为Controller层代码。
    js插件:
    1、jquery-2.1.4.min.js
    2、html2canvas.js

    <%@ page language="java" pageEncoding="UTF-8"%><html>
        <head>
        <script type="text/javascript" src="../../frame/js/jquery/jquery-2.1.4.min.js"></script>
        <script type="text/javascript" src="../../frame/js/html2canvas.js"></script></head>
    <body>
      <input type="button" class="button" value="屏幕截图" id="addPolyline" onclick="snapscreen()"/>
        <script type="text/javascript">
            function snapscreen(){
                html2canvas(document.body, {
                    allowTaint: true, 
                    taintTest: false,
                    onrendered: function(canvas){
                        var dataUrl = canvas.toDataURL("image/png"); 
                        $.ajax({
                            url:'http://cmis:8080/cmisplat/snapCapture/snapscreen',
                            type:'POST',
                            data:{
                                base64ImgData : JSON.stringify(dataUrl)
                            },
                            success:function(msg){
    
                            },
                            error:function(XMLHttpRequest){
                                alert( "Error: " + XMLHttpRequest.responseText); 
                            }
                        });
                    }
                });
            }
        </script>
    </body>
    </html>

    Controller层代码:
    注意:代码中使用到了sun.misc.BASE64Decoder类,在MyEclipse中会报错,需要进行几步操作:
    第一步
    这里写图片描述
    第二步:选中Access rules,点击edit
    这里写图片描述
    第三步 选择Accessible **
    这里写图片描述

    import java.io.File;
    import java.io.PrintWriter;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.commons.io.FileUtils;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import sun.misc.BASE64Decoder;
    
    import com.newsoft.utils.JSONTool;
    
    @Controller
    @RequestMapping("/snapCapture")
    public class SnapScreenController {
    
        @RequestMapping("/snapscreen")
        public void snapscreen(PrintWriter writer,String base64ImgData,
                Integer stationno,Integer laneno,Date ccollecttime,String recordid) {
            Map<String, Object> map = new HashMap<String, Object>();
            boolean flag = false;
            String msg = "截屏失败";
    
            try {
                    //BASE64Decoder会报错,Myeclipse中需要开启对此类的使用
                    BASE64Decoder d = new BASE64Decoder();
                    //去掉头部声明
                    base64ImgData = base64ImgData.substring(base64ImgData.indexOf(",")+1);
                    byte[] bs = d.decodeBuffer(base64ImgData);
                    String snapScreenPath = "F:\\screen.png";
                    //保存图片到本地
                    //org.apache.commons.io.FileUtils;
                    FileUtils.writeByteArrayToFile(new File(snapScreenPath), bs);
    
            } catch (Exception e) {
                e.printStackTrace();
                flag = false;
                msg = "截屏失败!失败原因:" + e.getMessage();
            }
    
            map.put("success", flag);
            map.put("msg", msg);
            writer.write(JSONTool.toJson(map));
        }
    }
    展开全文
  • HTML页面 截图工具

    2011-06-01 00:48:56
    截图,HTML页面截图,截图,HTML页面截图
  • <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src=
  • 此版本支持新增scale和dpi,支持移动端高清截图。scale:按比例增加分辨率 (2=双倍);dip:将分辨率提高到特定的DPI(每英寸点数);
  • 附件中实现了通过html2canvas截图百度echart。解压即可运行
  • vue 使用 html2canvas 截图

    千次阅读 2019-08-16 10:20:58
    // html2canvas 是把页面中一个标签 生成一张图片 (一帮用于生成海报) // 只要浏览器支持 Canvas 即可,包括:Firefox 3.5+、Google Chrome、Opera 新的版本、IE9 以上的浏览器。 // 移动端 也就是手机 本人实际...
  • html 截图工具

    2012-02-23 08:20:25
    html 截图工具
  • html2canvas 是一款js屏幕截图插件。该插件可以将当前屏幕的DOM元素按原样进行截图,通过canvas生成图片。
  • html2Canvas截图加demo

    2018-10-29 14:39:04
    htm2Canvas实现网页截图功能,包括demo。
  • 解决htmlcanvas手机无法截图或者截图不全的问题,解决后在手机或者pc上截图效果非常的好。主要解决img对象转换为base64的问题
  • js+html手机端视频截屏

    千次阅读 2017-07-21 15:16:26
    在运行这段代码的时候引用的视频一定要存储在本地,否则会报...html> meta http-equiv="X-UA-Compatible" content="chrome=1"> head> script src="js/jquery-1.9.1.js">script> script src="js/canvas.js">script>
  • Html网页DIV截图功能

    千次阅读 2016-07-19 11:55:00
    (1) 方案1 使用范围广,如果图表包含了自定义的div,也能截图导出,但是清晰度有问题(根源是啥,需要研究html2canvas源码,我没研究,但是我相信可以解决。) (2) 方案2,使用组件自身的导出,由于本身就是...
  • shearphoto2.3 正式版发布,shearphoto是最强的截图插件!世界第一 shearphoto2.3 正式版本升级概况 距离2.2发布不到两天又更新为2.3,作者也有点郁闷 升级插件就好像整容一样,永远都对自己不满意。 1:2.3...
  • 通过html5canvas实现批注功能,可以在线批注,批注完成后保存成图片,或者通过网页截图的方式保存
  • 实现网页页面截屏,并且将其转换为指定图片格式保存下来,需要使用到html2canvas.js。 前面是实现原理和步骤分析,具体实现代码在文章尾部。 一、实现HTML页面截屏并保存为图片 原理是遍历需要转换的页面DOM元素,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 260,484
精华内容 104,193
关键字:

html截图