java 图片按照原尺寸比例存入word
在使用poi往word里面插入图片时可以使用
XWPFParagraph.insertNewRun(i).addPicture(InputStream pictureData, int pictureType, String filename, int width, int height)方法

但是为了使得插入word中的图片按照原图尺寸进行等比例缩放,我们必须必须获得原图的尺寸,常用的方法就是通过
javax.imageio.ImageIO.read(InputStream input)方法读取图片信息,这样就会涉及到两次图片读写,为了减少不必要的网络通信,
我们可以使用下面的方式进行优化:
URL url = new URL(runText);
byte[] bytes = IOUtils.toByteArray(url.openStream());
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
BufferedImage img = javax.imageio.ImageIO.read(bis);
int width = img.getWidth();
int height = img.getHeight();
//下面按照图片的实际大小进行同比例缩放
int picHeight = 300;
int picWidth = picHeight * width/height;
//下次读取该ByteArrayInputStream 之前一定要调用reset进行复位,这样才能读到图片所有数据
bis.reset();
para.insertNewRun(i).addPicture(bis,
XWPFDocument.PICTURE_TYPE_JPEG, url.getFile(), Units.toEMU(picWidth), Units.toEMU(picHeight));
好了,上面就是通过ByteArrayInputStream来减少网络通信次数的。
POI导出word中XWPFRun的addPicture方法设置图片宽度和高度
XWPFRun run = paragraph.createRun();
InputStream is = getClass().getClassLoader().getResourceAsStream("images/abc.gif");
// 因为FileInputStream没有重写reset() 所有将流转为了byte数组
byte[] bs = IOUtils.toByteArray(is);
BufferedImage image = ImageIO.read(new ByteArrayInputStream(bs));
//int width = MyUnits.pxToEMU(image.getWidth());
//int height = MyUnits.pxToEMU(image.getHeight());
//EMU(英制公制单位)。1 EMU = 1/914400英寸= 1/36000 mm
run.addPicture(new ByteArrayInputStream(bs), Document.PICTURE_TYPE_GIF, "", 685800, 685800);
如果不知道参考的word模板的图片设置的大小,则可以双击word模板中的图片,然后查看宽度和高度
addPicture方法中的宽度和高度是EMU(英制公制单位),所有根据1 EMU = 1/914400英寸= 1/36000 mm转化即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关推荐:
ChatGPT常见问题汇总:解答你关于AI的一切疑惑,松鼠ai智能教适应教育
SEO通过-如何通过SEO优化让你的业务在搜索引擎中脱颖而出,保定网站建设推广专家
SEO培训:助力企业实现互联网营销的无限可能,平塘网站优化推广价格
AI免费生成:释放创造力的秘密武器
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
OpenAI银行卡扣款的公司是哪家?揭秘背后的支付流程与安全保障,AI素描相片
SEO要好,网站流量翻倍的关键秘诀,品牌网站建设关键词优化
SEO优化知识全解析:提升网站排名的秘密武器,ai出错合集
软件AI的全称:人工智能驱动未来的关键力量
ChatGPT宕机恢复时间如何解决用户焦虑与技术背后的故事,ai人工智能写作火山
SEO那么重要,企业如何通过它脱颖而出?,自媒体推广营销的概念
文章缩写AI:高效编辑的未来之光
SEO领站-从零到一打造成功网站排名的秘密,轻淘客seo怎设置
AI写作技巧,让创作事半功倍!
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
SEO专业怎么样?未来发展的无限潜力与职业前景,联通ai智能早教
SEO更多-让你的企业站点在搜索引擎中脱颖而出,如何结交seo大神
seo规范是什么,seo行业标准 ,啊龙ai音乐
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
SEO对策:提升网站排名与流量的必备策略,SEO入门相机平价学生
SEO做好,企业网站流量翻倍的关键,seo白帽技术有哪些
ChatGPT:引领人工智能对话新时代的智能助手,Ai shiang
seo进阶买什么书推广,seo的推广技巧 ,菩萨壁纸ai
seo网站编辑是做什么,seo网站编辑可在家兼职 ,ai慢直播
优化公司:助力企业腾飞的秘密武器,微信营销推广价格多少
seo涉及什么内容,seo主要包括 ,法医使用ai
OpenPose大白话解释:让你轻松理解姿态识别的神奇技术,ai天天晴
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
AI智能工具的无限可能:未来已来,你准备好了吗?
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
SEO好吗?助力网站成功的关键之道,网站优化方案范文怎么写
AI撰写工具的无限可能,让内容创作更高效、更精彩!
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单
AI免费免登录:轻松体验人工智能的魔力,无需繁琐注册,华为AI音箱2音质如何
如何识别文章是否由AI撰写?揭开智能写作的秘密
AI自动读文:让阅读更轻松、更高效的智能革命,寄ai空
SEO观看:如何通过优化提升您的网站流量和品牌影响力,龙里网络营销推广
什么是seo公司口碑,seo品牌 ,ai大模型训练是什么意思
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
SEO作用:提升网站流量与品牌曝光的秘密武器,美容网站联盟平台推广
SEO做网站点击:提升网站流量的关键策略,国内ai写作论文
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
为什么要年前做SEO,企业为什么做seo推广 ,云南ai大数据公司
SEO教你如何快速提升网站排名,打破竞争壁垒!,本溪seo优化排名公司
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件