JAVA导出echarts图表图片

应用场景

  java中导出报告(word文档)

实现思路

  通过java调用浏览器驱动执行js方法得到base64字符串图片,然后将base64字符串转成图片。

1.准备导出echarts所用到的工具

1.导入jar包

    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.0.1'
    // https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver
    compile group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version: '3.0.1'
    // https://mvnrepository.com/artifact/com.codeborne/phantomjsdriver
    compile group: 'com.codeborne', name: 'phantomjsdriver', version: '1.2.1'
    // https://mvnrepository.com/artifact/org.apache.commons/commons-exec
    compile group: 'org.apache.commons', name: 'commons-exec', version: '1.3'
    // https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api
    compile group: 'org.seleniumhq.selenium', name: 'selenium-api', version: '3.0.1'

2.下载浏览器驱动

我这里用的phantomjsdriver

2.具体实现代码(这里一定记得导入jquery-1.9.1.js和echarts.min.js)




    
    ECharts数据统计图



 /**
     * 调用本地浏览器驱动生成图片
     */
    public  static String derverGenerateImag(){
        WebDriver driver = getPhantomJSDriver();
        //设置超时时间为-1秒
        JavascriptExecutor js=(JavascriptExecutor) driver;
        driver.get("file:///F:/testfile/html/week_arc_echarts.html");
        try {
        //休眠2秒等浏览器渲染完成后获取图片
            Thread.sleep(2100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //返回图片base64编码
        Object  res=js.executeScript("return getImage()");
        driver.quit();
        return String.valueOf(res);
    }

    public static PhantomJSDriver getPhantomJSDriver(){
        //设置必要参数
        DesiredCapabilities dcaps = new DesiredCapabilities();
        //ssl证书支持
        dcaps.setCapability("acceptSslCerts", true);
        //截屏支持
        dcaps.setCapability("takesScreenshot", false);
        //css搜索支持
        dcaps.setCapability("cssSelectorsEnabled", true);
        //js支持
        dcaps.setJavascriptEnabled(true);
        //驱动支持
       dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"F:\\testfile\\html\\phantomjs.exe");
        PhantomJSDriver driver = new PhantomJSDriver(dcaps);
        return  driver;
    }
      public static void main(String[] args) {
       System.out.println(derverGenerateImag());
    }

到此结束

你可能感兴趣的:(JAVA导出echarts图表图片)