[b]在前端通过HighCharts获取svgCode,再根据svgCode生成图片。生成的图片在插入到word文档中 freemarker, BASE64Encoder[/b]

[url]http://www.muxuanli.com:8888/lmx/blog/10[/url]

[b]1. 获取svgCode[/b]

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

var svgCode = chart.getSVG();

[b]2. 根据svgCode生成图片[/b]

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));

[b]3. SvgPngConverter[/b]

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 highcharts_java后台生成HighCharts图片相关推荐

  1. 纯后台生成highcharts图片有哪些方法?

    比如说,领导抛给你一个需求,把一些数据做成图表,每天通过邮件发送,让领导能在邮件中就看到图片,你会有什么思路呢? 本人使用的是phantomjs这个神器,它的内核是WebKit引擎,不提供图形界面,只 ...

  2. Java生成png文件字体不清晰,java操作字体生成png图片,该怎么解决

    java操作字体生成png图片 java生成png图片,前提不能固定图片大小,根据文字和文字字号 自动生成png图片. 网上找了一些方法都是需要固定图片大小然后生成图片的.有没有办法解决自动生成文字p ...

  3. JAVA通过Graphics2D生成表格图片

    目录 一.背景 二.效果图 三.主要类 四.环境要求 五.完整代码 一.背景 由于钉钉机器人目前不支持发送表格消息,所以想通过Graphics2D绘制表格生成图片文件后转Base64发送,在参考了其他 ...

  4. 素描java字母_生成素描图片

    importjava.awt.color.ColorSpace;importjava.awt.image.BufferedImage;importjava.awt.image.ColorConvert ...

  5. java 网络请求 生成本地图片

    注:https://www.cnblogs.com/faunjoe88/p/7478010.html https://blog.csdn.net/qq_36409820/article/details ...

  6. java echarts 生成图片_java如何在后台生成echarts图表?实际代码展示

    学习是一个永无止境的过程,关于java的学习更是如此.今天主要为大家介绍下,如何在java中后台生成echarts图表,并且为大家展示实际的操作流程. 首先说下它的适用情况:⑴.支持echart4.0 ...

  7. java实现后台直接生成二维码图片并直接上传到七牛云上面

    java实现后台直接生成二维码图片并直接上传到七牛云上面 需求:后台是直接根据唯一核销码生成图片,然后的话直接上传到七牛云,数据库只是保存地址,一开始也想错了,想成了创建临时文件存储生成的图片再上传到 ...

  8. Java后台生成图表——主代码(折线图,饼状图,柱状图,-》并产出图片PDF或其他格式的图片内容)

    声明: 本文采用的数据均来源于网络,本人只用于学习记录,若有侵权,还望能及时联系. Maven 的 POM 依赖 <!--必要--><!--用于jfreechart生成图片 --&g ...

  9. Java使用iText生成word文 表格、图片、表格里插图片、页眉、页脚、图片页脚、(学习帖)

    刚开始自己写的时候上网搜帖子,相信大家都看见了,千篇一律很多东西压根就不提,做了好几天,终于成形了.好了,立马分享! 好了,首先是我的js部分,这里是highchars的方法获取图片字符串直接提交到了 ...

最新文章

  1. ONNX MLIR应用示例(含源码链接)
  2. 2021年大数据ELK(三):Lucene全文检索库介绍
  3. SQL Server 2012笔记分享-48:备份时间线
  4. Linux 有趣命令
  5. 【PAT乙级】1076 Wifi密码 (15 分)
  6. 如何跟下属进行沟通?
  7. 在linux桌面死掉时kill之
  8. android7.1 shotcuts,Android N App Shotcuts 学习
  9. Vue全家桶 之 Vue基础
  10. Integer的127与128
  11. BZOJ 1607 [Usaco2008 Dec]Patting Heads 轻拍牛头:统计 + 筛法【调和级数】
  12. c语言把文件看作是一个字符序列,C语言对文件的操作
  13. candidate master_已毕业研究生
  14. linux图片什么格式文件怎么打开,解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法...
  15. python小技巧:求32位二进制负数的补码,附剑指offer中的应用
  16. PNG文件编码解析之PNG文件格式中的所有数据块以及标识
  17. react-prev
  18. Python学习笔记——speech智能语音模块
  19. 盘点6个靠谱正规的赚钱软件(有用赶快收藏)
  20. 【java】查看 Java 所有字体的 代码。java字体对照小程序

热门文章

  1. 蓝牙防丢设备 AirTag
  2. C# Flurl 高性能的访问http
  3. 运行于Windows中的GIZA++( GIZA++ working inWindows Platform)
  4. 缺少对象 index.php 行123,Microsoft VBScript 运行时错误 (0x800A01A8)缺少对象: ''
  5. 企业服务,赛道决定路径
  6. XCZU15EG学习资料保存第527篇:基于3U VPX XCZU15EG+TMS320C6678的信号处理板
  7. 新加坡南洋理工计算机科学院排名,南洋理工大学世界排名及专业排名汇总(THE世界大学排名版)...
  8. vivo 云服务海量数据存储架构演进与实践
  9. HDFS的主要设计理念
  10. 德语环境下浮点数精度错乱的解决办法