echarts 图形 导出到后台 word 图片加文字

用freemarker

先做一个word模板

public class ReportExporter extends AbstractServletHandler {    private static final DebugPrn log = new DebugPrn(ReportExporter.class.getName());

    @Override    public String response(RequestParameters requestParameters) throws IPEGException {        initParameters(requestParameters);        String imgData = requestParameters.getRequest().getParameter("imgData").split(",")[1];        String exportedWord = createWord(WordData.getDataMap(imgData));        if(!"".equals(exportedWord)){            if(!ExportWord(exportedWord)){                return JsonHandlerUtils.faliureMessage;            }        }        return JsonHandlerUtils.successMessage;    }

    private boolean ExportWord(String exportedWord) {        OutputStream toClient = null;        InputStream fis = null;        File wordFile = null;        try {            wordFile = new File(exportedWord);            String fileName = URLEncoder.encode(wordFile.getName(),"UTF-8");            if(fileName.length() > 150){                fileName = new String(fileName.getBytes("GBK"),"ISO-8859-1");            }            fis = new BufferedInputStream(new FileInputStream(wordFile));            byte[] buffer = new byte[fis.available()];            fis.read(buffer);            toClient = new BufferedOutputStream(response.getOutputStream());            response.reset();            response.setContentType("application/msword");            response.addHeader("Content-Disposition",                    "attachment; filename=" + fileName);            response.addHeader("Content-Length",String.valueOf(wordFile.length()));            toClient.write(buffer);            toClient.flush();        } catch (Exception e) {            log.error("export word failed"+e.getMessage(), e);            return false;        }finally {            IOCloseUtil.close(fis);            IOCloseUtil.close(toClient);            wordFile.delete();        }        return true;    }

    private String createWord(Map<String,Object> dataMap){        Configuration configuration = null;        configuration = new Configuration();        configuration.setDefaultEncoding("utf-8");        Template t = null;        try {            configuration.setDirectoryForTemplateLoading(new File(getTemplatePath()));            t = configuration.getTemplate("raplace_word.ftl");        } catch (IOException e) {            log.error("load template failed!"+e.getMessage(), e);            return "";        }        File outFile = new File(getWordPath());        Writer out = null;        FileOutputStream fos=null;        try {            fos = new FileOutputStream(outFile);            OutputStreamWriter oWriter = new OutputStreamWriter(fos,"UTF-8");            out = new BufferedWriter(oWriter);            t.process(dataMap, out);            out.flush();        } catch (Exception e) {            log.error("report write word stream failed"+ e.getMessage(), e);            return "";        }finally {            IOCloseUtil.close(out);            IOCloseUtil.close(fos);        }        return getWordPath();    }

    private String getTemplatePath(){        SystemSupportService smService = ServiceAccess.getSystemSupportService();        Par par = null;        try {            par = smService.getDeployedPar(ReportExporter.class);        } catch (SystemSupportException e) {            log.error("get Par‘s path failed!"+e.getMessage(), e);        }        return par.getBaseDir() +File.separator+ "conf"+File.separator+"template";    }

    private String getWordPath(){        return getTemplatePath()+File.separator+"replaceWord.doc";    }}
public class WordData {    public static Map<String, Object> getDataMap(String imgData) {        String img_data = imgData.replace(‘ ‘,‘+‘);        Map<String, Object> dataMap = new HashMap<String, Object>();        dataMap.put("city_feature_average", "dfdfdfdf");        dataMap.put("city_feature_level", "2222");        dataMap.put("city_feature_YoY_up_down", "33333");        dataMap.put("city_feature_MoM_up_down", "4444");        dataMap.put("city_feature_image", img_data);        return dataMap;    }}
				
时间: 2024-12-14 18:13:09

echarts 图形 导出到后台 word 图片加文字的相关文章

ThinkPHP使用Imagick给图片加文字

在PHP处理文字的过程中,imagettftext是一个给图片添加水印的方式,可以动态指定字体.文字.大小,用起来比较方便: 在ThinkPHP中,可以方便地使用Imagick来完成相应的效果ImagickDraw.annotateImage,但是二者共同的问题是文字不能自动根据宽度换行: 解决的办法就是计算文字的宽度,并且重构字符串在一些地方加入\n符号 于是经过在网上的搜寻,整合出以下代码: /** * 返回一个字符的数组 * * @param $str 文字 * @param $chars

ASP.NET(C#)图片加文字、图片水印,神啊,看看吧

ASP.NET(C#)图片加文字.图片水印 一.图片上加文字: //using System.Drawing; //using System.IO; //using System.Drawing.Imaging; private void AddTextToImg(string fileName,string text) { if(!File.Exists(MapPath(fileName))) { throw new FileNotFoundException("The file don't

php给图片加文字

在图片上加文字是论坛,博客,新闻网站上最喜欢用的功能,防止盗图.这里看看代码是如何实现的. 首先还是upload_image.php这个文件,注意这里的caption文本框中输入的内容最终会写到图片上面 <?php //修改图片效果 $db = mysql_connect('localhost','root','Ctrip07185419') or die('can not connect to database'); mysql_select_db('moviesite',$db) or di

php给图片加文字水印

<? php /*给图片加文字水印的方法*/ $dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg'; $dst = imagecreatefromstring(file_get_contents($dst_path)); /*imagecreatefromstring()--从字符串中的图像流新建一个图像,返回一个图像标示符.其表达了从给定字符串得来的图像 图像格式将自己主动监測,仅仅要php支持jpeg,png,

Android自定义组合控件--图片加文字,类似视频播放软件的列表

分四步来写: 1,组合控件的xml; 2,自定义组合控件的属性; 3,自定义继承组合布局的class类,实现带两参数的构造器; 4,在xml中展示组合控件. 具体实现过程: 一.组合控件的xml 我接触的有两种方式,一种是普通的Activity的xml:一种是父节点为merge的xml.我项目中用的是第一种,但个人感觉第二种好,因为第一种多了相对或者绝对布局层. 我写的 custom_pictext.xml <?xml version="1.0" encoding="u

python PIL 合成图片,图片加文字

# -*- coding:utf-8 -*- from PIL import Image from PIL import Image from PIL import ImageDraw from PIL import ImageFont # 加载底图# 设定边界# 写进新图片内容# 保存 # 加载底图 base_img = Image.open('E:/Work/image/house_image/origin2.png') # 底图上需要P掉的区域 # 以左边界为准(left, upper,

PHP给图片加文字(水印)

准备工作: 代码: <?php header("Content-type: image/jpeg"); //浏览器输出,如不需要可去掉此行 $im = @imagecreatefromjpeg('bg.jpg'); //从图片建立文件,此处以jpg文件格式为例 $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = image

PHP图片加文字水印和图片水印方法

文字水印 $dst_path = 'dst.jpg'; //创建图片的实例$dst = imagecreatefromstring(file_get_contents($dst_path)); //打上文字$font = './simsun.ttc';//字体$black = imagecolorallocate($dst, 0x00, 0x00, 0x00);//字体颜色imagefttext($dst, 13, 0, 20, 20, $black, $font, '快乐编程'); //输出图

给图片加文字的方法

这是在论坛中有人提出的一个问题,原贴见:Graphics DrawString参数无效.这里给出方法,读者可以自行修改以适应自己的项目需求. 先上代码: if (!Page.IsPostBack) { try { string str = Server.MapPath("~/upload/test.jpg"); System.Drawing.Image myImage = System.Drawing.Image.FromFile(str); Bitmap map = new Bitm