freemarker导出word文档对图片拉伸或拉长的处理
实际height=cY*100/914400;//固定系数
* 设置图片宽高(以纸张设置A4为标准,宽高单位像素)
* @param imWidth 实际宽度
* @param imHeight 实际高度
* @param sWidth 设置宽度
* @param sHeight 设置
* @param isEnlarge 是否放大 0-不放大,1-放大 选择性的放大图片
* @remarks 当 实际宽高小于目标设置宽高时等比缩小后word展示的图片过小,此时下可设置等比放大,放大到合适大小
* @return
*/
public static Map<String,Object> setWH(String imWidth,String imHeight ,String sWidth,String sHeight,String iType,String isEnlarge){
Map<String,Object> map=new HashMap<String,Object>();
//设置宽高
double width =Double.parseDouble(sWidth);
double height=Double.parseDouble(sHeight);
//实际宽高
double iWidth=Double.parseDouble(imWidth);
double iHeight=Double.parseDouble(imHeight);
//目标宽高
Double tW;
Double tH;
//混搭图宽度比例以0.6作为分界点,小于0.6 会拉长,大于0.6会拉伸,饼图:大于0.7小于1.0时会拉长,大于1.0时会拉伸,次临界点以不同大小屏幕测试得出的计算值
if((width/iWidth<0.6 && "1".equals(imageType)) || (width/iWidth>0.7 && width/iWidth<1.0 && "2".equals(imageType))){
//计算缩放比例
tW=iWidth*(height/iHeight);
tH=iHeight*(height/iHeight);
}else{
//计算缩放比例
if(width/iWidth<=height/iHeight){
tW=iWidth*(width/iWidth);
tH=iHeight*(height/iHeight);
}else{
tW=iWidth*(height/iHeight);
tH=iHeight*(height/iHeight);
}
//选择性的等比放大图片
if("1".equals(isEnlarge)){
//目标宽度或高度小于设置宽度或高度时比例方法
if(tW<width || tH<height){
map=enlWH(tW,tH,width,height);
tW=(Double) map.get("tW");
tH=(Double)map.get("tH");
}
}
}
//图片cX,cY计算
//914400为固定系数
map.put("imageWidth", String.valueOf(tW.intValue()*914400/100));
map.put("imageHeight",String.valueOf((tH.intValue()*914400/100)));
return map;
}
/**
* 比例放大
* @param width 转换过的宽度
* @param height 转换过的高度
* @param MaxWidth 目标宽度
* @param MaxHeight 目标高度
*/
public static Map<String,Object> enlWH(double width,double height,double maxWidth,double maxHeight){
Map<String, Object> map = Maps.newConcurrentMap();
// 放大倍数
double times = 1;
//比例
double sw = (maxWidth * 1.0) / (width * 1.0);
double sh = (maxHeight * 1.0) / (height * 1.0);
if (width > maxWidth && height > maxHeight) {
return map;
} else if (width < maxWidth && height <= maxHeight) {
if (sw > sh) {
times = sw + 0.2;//根据实际情况设置
} else {
times = sh + 0.2;
}
} else if (width < maxWidth && height > maxHeight) {
times = sw + 0.2;
} else {
times = sh + 0.2;
}
NumberFormat nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(1);
times=Double.parseDouble(nf.format(times));
Double lastW = times * width;
Double lastH = times * height;
map.put("tW", lastW);
map.put("tH", lastH);
return map;
}
freemarker导出word文档对图片拉伸或拉长的处理相关推荐
- java通过freemarker导出word文档带图片并且循环
转载请标明出处: https://blog.csdn.net/weixin_41965979/article/details/80969287 本文出自付付讶的博客 1:所需jar包:freemark ...
- freemarker导出Word文档并在其中插入图片
先将word转成xml格式,再用notepad将其转为ftl格式(将要填入数据的地方加个占位符,${name}) import java.io.File; import java.io.FileInp ...
- 使用freemarker导出word文档包含多张图片
使用freemarker导出word文档包含多张图片 最近项目中有个需求就是导出word文档并且文档中需要有多张图片,我当时一脸懵逼啊,之前没有搞过这个啊,但是不要灰心,肯定会有很多人搞过的,百度一下 ...
- java-制作flt模板,导出word文档带图片循环
java-制作flt模板,导出word文档带图片循环 模板制作 制作xml 编辑xml文档 将xml模板转换为flt 编写工具类 导出word工具类 获取远程图片 使用示例 使用示例--springb ...
- freemarker导出word文档
使用freemarker导出word文档的过程 **************************************************************************** ...
- freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...
- 使用FreeMarker生成word文档(带图片),word转pdf,预览pdf,pdf下载工具类
一.下载或配置: 下载jar包 :freemaker的jar包下载 下载jar包 :aspose-words的jar包下载 或者配置maven依赖: pom.xml添加aspose的依赖包(maven ...
- SpringBoot整合Freemarker导出word文档表格
freemarker模板里面的template.process()方法里传入的第一个参数Object类型,如果是一个实体类对象在模板上怎么进行渲染,将实体类的值取出 freemarker会调用Obje ...
- Java+freemarker 导出Word文档的实现(包括word for Mac 插入域的方法)-静态数据,动态表格list
1. 准备环境 1.1 word版本:MacOS系统下的Office360 word for Mac下好多操作和win的不一样啊啊啊,差点栽在Mac word的模版设计上. win版本的word模版设 ...
最新文章
- Business Contact Mnanager for Outlook2010之二:常用基本功能
- sql server 2005中新增加的try catch学习
- docker逃逸 从Play-with-Docker容器逃逸到Docker主机
- 尽快卸载这两款恶意浏览器插件!已有近50万用户安装
- oracle high watermark,Elasticsearch high disk watermark 问题
- select count(*) from返回的类型_数据分析面试题类型汇总
- I.MX6 Android 设备节点权限
- 杨校老师课堂之Hadoop环境搭建(一)
- 三角函数的思维导图(中)-1
- Premiere Pro CC2017软件安装资料及教程
- linux centos7 安装svn,linux centos7安装svn并配置同步更新web项目
- IDEA单机,双人五子棋
- 【linux_centOS】Warning: mysql_num_rows() expects parameter 1 to be resource
- friendly发音_欧路词典|英汉-汉英词典 friendly是什么意思_friendly的中文解释和发音_friendly的翻译_friendly怎么读...
- 大数据在金融领域的应用案例解析
- sql语句实现行转列的3种方法
- 学习Unix,可从事什么样的工作(2)《精通Unix下C语言与项目实践》读书笔记(4)...
- 如何处理大文件的GIS数据(剪裁数据)
- Echarts 地图隐藏右下角 “南海诸岛” 的方法
- 前端第八次培训(JS表单)
热门文章
- 数据挖掘的R包和函数的集合
- 若依Ruoyi 不分离教程01-新建主子表应用
- c语言叶子,用C语言画的一片叶子
- 【洛谷习题】Likecloud-吃、吃、吃
- ViacomCBS和韩国CJ ENM达成战略合作;AppsFlyer与英特尔共同打隐私云 | 全球TMT
- ssh 连接报错:Unable to negotiate with 192.168.xx.xx port 22: no matching key exchange method found.
- 突然悟到了“追求卓越”的真谛
- java转移oraclr数据_Oracle转义 - JAVA_NINA的个人空间 - OSCHINA - 中文开源技术交流社区...
- 90后的职场价值观:职场的本质是交换,从来不是奉献,更不是奉承!
- php调用python pkl_Python中的Pickle操作(pkl文件解释)