桃花救赎 发布于 2017-12-11 14:23

公司项目需要把页面的iframe中的BI报表进行截图,考虑有两种方式:一是使用html2canvas,这个由于页面太多量太大就pass掉了;另外一种方法是使用CutyCapt插件进行截图,这种办法遇到一个不能截取登录过后加载的动态数据的问题,下面是代码。


         // 要截图的网页URl     
        $url = "http://localhost:37799/WebReport/tst.html";
        // 设置图片输出地址
        $outdir = 'D:/12_11_images/'.time().'.png';
        if (!file_exists(substr($outdir,0,15))) {
            mkdir($outdir,0777,true);echo '创建文件夹成功';
        }
        // CutyCapt.exe的绝对路径
        $path = 'D:/CutyCapt.exe';

        // delay  等待秒   maxwait:不要等待(秒)
        $cmd = "$path url=$url delay=60000  maxwait=90000 out=$outdir";
        // 执行执行命令
        if (exec($cmd) !== false) {
            echo '图片抓取成功!'.'
'.'图片保存到路径:'.$outdir.'
'.'图片来源URL:'.$url;
        }else{
            echo '系统错误';
        }
                
                
因为这个链接是做的单点登录,通过这个url访问他可以直接登录进去的,不需要人工在浏览器先去访问一次。然而上面的代码执行后给我截图出来的就是一张空白图片,里面只有一行“正在加载数据中...”,我想可能页面没有加载完,按照这个插件官方的说法是加delay这个延迟等待参数,设了1分钟没有任何效果,在exec函数前面延迟是没用的,他这个地方相当于直接调起cmd命令执行,执行时才会去访问这个url。

有没有用过这个插件的大牛,想请教下这个插件的延迟参数对于这种需要登录的网页都是怎么使用过的,有没有大牛遇到过这种情况,还望能给在下指点一二,在下不胜感激。

1 个回答
  • 请教大牛

    2017-12-11 17:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    adfa3sd5f6a
  • 9
    欣欣大妮
  • 10
    狂风DKC想毕业321
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有