`
lijiejava
  • 浏览: 262361 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

java后台生成HighCharts图片

 
阅读更多
在前端通过HighCharts获取svgCode,再根据svgCode生成图片。生成的图片在插入到word文档中 freemarker, BASE64Encoder

http://www.muxuanli.com:8888/lmx/blog/10

1. 获取svgCode

var chart = $("#container").highcharts();
var svgCode = chart.getSVG();


2. 根据svgCode生成图片

String svgImgPath = uploadFilePathService.getUploadFilePath()+"svg/"+salivaBox.getBarCode()+"_"+m+".png";
String svgCode = svgCodeList.get(m).replace("Highcharts.com.cn","");
SvgPngConverter.convertToPng(svgCode, svgImgPath);
params.put("image"+(m+1), SvgPngConverter.getImageBASE64Encoder(svgImgPath));


3. SvgPngConverter

import java.io.*;

import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import sun.misc.BASE64Encoder;

/**
 * Created by lijie on 17/6/5.
 */
public class SvgPngConverter {

    /**
     *@Description: 将svg字符串转换为png
     *@Author:
     *@param svgCode svg代码
     *@param pngFilePath  保存的路径
     *@throws IOException io异常
     *@throws TranscoderException svg代码异常
     */
    public static void convertToPng(String svgCode,String pngFilePath) throws IOException,TranscoderException{

        File file = new File (pngFilePath);

        FileOutputStream outputStream = null;
        try {
            file.createNewFile ();
            outputStream = new FileOutputStream (file);
            convertToPng (svgCode, outputStream);
        } finally {
            if (outputStream != null) {
                try {
                    outputStream.close ();
                } catch (IOException e) {
                    e.printStackTrace ();
                }
            }
        }
    }

    /**
     *@Description: 将svgCode转换成png文件,直接输出到流中
     *@param svgCode svg代码
     *@param outputStream 输出流
     *@throws TranscoderException 异常
     *@throws IOException io异常
     */
    public static void convertToPng(String svgCode,OutputStream outputStream) throws TranscoderException,IOException{
        try {
            byte[] bytes = svgCode.getBytes ("UTF-8");
            PNGTranscoder t = new PNGTranscoder ();
            TranscoderInput input = new TranscoderInput (new ByteArrayInputStream (bytes));
            TranscoderOutput output = new TranscoderOutput (outputStream);
            t.transcode (input, output);
            outputStream.flush ();
        } finally {
            if (outputStream != null) {
                try {
                    outputStream.close ();
                } catch (IOException e) {
                    e.printStackTrace ();
                }
            }
        }
    }

    public static String getImageBASE64Encoder(String imagePath) {
        InputStream in = null;
        byte[] data = null;
        try {
            in = new FileInputStream(imagePath);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }

}

分享到:
评论

相关推荐

    java后端调用hightchars生成图片

    为了在Java后端生成Highcharts图表,我们可以使用“highcharts-serverside-export-master”这个压缩包中的资源。这个项目可能是对Highcharts的一个后端实现,允许我们在Java环境中解析Highcharts的配置和数据,然后...

    Highcharts在Java后台导出图片到PDF和EXCEL文件中示例代码

    Highcharts在Java后台导出图片到PDF和EXCEL文件中示例代码,程序放到MyEclipse8.6中编译后可直接放到Tomcat6及以上版本运行,程序中含有jar包,下载后不用操心到处找jar包,在MyEclipse8.6里建立普通的Web工程就可以...

    如何通过java实现highcharts导出图片至excel

    通过Java后台实现将前端页面的Highcharts图表导出至生成的Excel文件中。使用于报表页面导出类功能。 2. 解释 前端页面将图表的SVG信息字符串作为参数传递后台,使用Batik工具包生成图片,使用POI工具包操作Excel。...

    Highcharts AJAX后台JAVA JSON 曲线报表完美可运行例子 不包含官方JS 自己下载

    在这个"Highcharts AJAX后台JAVA JSON 曲线报表完美可运行例子"中,我们将探讨如何结合Java后端和JSON数据格式,通过AJAX技术在网页上展示动态曲线报表。 首先,`index_lineAjax.htm`是前端HTML文件,它包含了...

    Java HighCharts实例demo

    **Java HighCharts 实例详解** ...无论是在后台生成静态图表,还是在前端通过AJAX动态更新,都能提供出色的用户体验。通过深入学习和实践,你可以充分利用HighCharts的功能,创建出满足需求的可视化解决方案。

    java实现的highcharts与ajax结合动态实时获取数据更新图表

    在Java编程环境中,Highcharts是一个...Java负责处理后端逻辑和数据生成,Ajax负责异步数据请求,而Highcharts则用于前端的图表展示。通过熟练掌握这些技术,开发者可以构建出交互性强、用户体验良好的数据可视化应用。

    Java将数据和图片导入word文档以及html5绘图(highcharts,exporting.js;服务端导出)

    1,将java后台获取的数据写入word文档并导出 2,将图片导入word文档并导出(注意:导出图片在word模板上需要先随便找张图片先放入指定位置,另存为xml之后打开,将先前放入的图片xml删掉,做个标识符(例如:${abc}))

    Java Web动态图表编程

    1. Servlet与JSP:在Java Web中,Servlet处理后台逻辑,JSP用于生成动态HTML。Servlet可以计算数据并传递给JSP,JSP通过内置的JSTL标签库或EL表达式来显示图表。 2. AJAX:通过AJAX异步请求,可以从服务器获取新数据...

    JAVA代码数据驾驶舱应用,可通过JDBC、SOLR、ELASTIC等数据源,创建数据集,分析数据图表,生产数据看板.zip

    5. **数据分析与图表**:项目可能包含了如JFreeChart、Apache ECharts或Highcharts等Java图表库,用于将数据可视化。这些库可以生成各种图表类型,如柱状图、折线图、饼图等,帮助用户直观理解数据趋势和模式。 6. ...

    javaWeb后台管理系统模板(仅含前台所有模板,超详细)

    5. **后台技术**:虽然主要强调的是前端模板,但后台一般会使用Java Spring Boot或Spring MVC等技术,配合数据库如MySQL,进行数据处理和业务逻辑的实现。这部分虽然不在描述中,但在实际应用中不可或缺。 6. **...

    Echarts和Highcharts制作图表

    5. **服务器端渲染**:Highcharts支持服务器端渲染,能在后端生成图表图像,提高网页加载速度。 在描述中提到的"EchartsForSpring"可能是一个集成Echarts和Spring框架的项目示例。Spring是一个广泛使用的Java企业级...

    highcharts--基本使用(API常用属性).doc

    Highcharts内置了导出和打印功能,用户可以直接将图表导出为图片文件或打印出来,非常方便。 **2.12 缩放功能** Highcharts允许用户对图表的部分区域进行缩放,以便更详细地查看特定数据段。 **2.13 载入外部数据...

    highcharts插件

    在JSP中,可以将后台处理的数据通过Ajax异步请求传递给前端,前端再利用这些数据动态生成Highcharts图表。C#开发者则可以借助ASP.NET或其他框架,将数据序列化为JSON格式并发送到客户端,同样实现数据可视化。 集成...

    java jsp+servlet根据数据生成饼状图.rar

    4. **图表库**:生成饼状图通常需要借助第三方库,如JFreeChart、ECharts、Highcharts等。在这个项目中,很可能是使用了JFreeChart,它是一个强大的Java图表库,可以方便地创建各种类型的图表,包括饼状图。...

    java教育后台管理子系统.rar

    Java教育后台管理子系统是一个基于Java编程语言开发的软件应用,主要用于教育行业的后台管理。这个系统的核心目标是提供一个高效、稳定且功能丰富的平台,帮助教育机构或在线学习平台进行资源管理、用户管理、课程...

    highcharts在richfaces下的实现

    在后端,`chartBean`是一个 Managed Bean,负责处理数据并生成Highcharts配置对象。配置对象会被传递回JavaScript函数,并在页面加载时调用`drawChart`函数绘制图表。 在`chartBean`中,你可以使用如下的代码生成...

    ssh 导入导出excel+百度富文本编辑器+highcharts

    在SSH项目中,highcharts可以用于展示数据统计结果,通过JavaScript与后台Java代码交互,获取数据后动态生成图表。开发者需要理解highcharts的API,设置图表类型、数据源、样式等参数,以满足不同场景下的数据可视化...

    jsp实现,登录,插入,查询oracle数据可视化看板,数据区域实现隐藏滚动条,但有滚动效果,图表利用highcharts控件

    1. **JSP(JavaServer Pages)**:JSP是一种基于Java的技术,用于动态生成web页面。开发者可以在HTML或XML文档中嵌入Java代码,使得服务器端能够处理用户请求,动态生成响应内容。在本案例中,JSP被用来实现用户登录...

    java企业网站后台管理系统.zip

    Java企业网站后台管理系统是一款基于Java技术开发的管理平台,它主要用于实现企业级网站的后台功能,包括用户管理、权限控制、内容发布、数据处理等多种核心业务。本系统通常由多个模块组成,如用户模块、权限模块、...

    Highcharts图形统计

    关于后台数据的处理,这通常涉及到服务器端编程,如Python的Flask或Django,Java的Spring Boot等。后端会根据请求返回JSON数据,前端通过Ajax或者Fetch API获取并解析这些数据,然后更新图表。 在实践项目"Practice...

Global site tag (gtag.js) - Google Analytics