返回顶部
首页 > 资讯 > 后端开发 > Python >java 如何将图片按照原尺寸比例存入word中
  • 931
分享到

java 如何将图片按照原尺寸比例存入word中

2024-04-02 19:04:59 931人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

java 图片按照原尺寸比例存入Word 在使用poi往word里面插入图片时可以使用 XWPFParagraph.insertNewRun(i).addPicture(Input

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转化即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java 如何将图片按照原尺寸比例存入word中

本文链接: https://lsjlt.com/news/131569.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java 如何将图片按照原尺寸比例存入word中
    java 图片按照原尺寸比例存入word 在使用poi往word里面插入图片时可以使用 XWPFParagraph.insertNewRun(i).addPicture(Input...
    99+
    2024-04-02
  • java怎么将图片按照原尺寸比例存入word中
    本篇内容介绍了“java怎么将图片按照原尺寸比例存入word中”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java 图片按照原尺寸比例存入...
    99+
    2023-06-20
  • 微信小程序中如何实现本地图片按照屏幕尺寸处理
    这篇文章主要介绍了微信小程序中如何实现本地图片按照屏幕尺寸处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序 本地图片按照屏幕尺寸...
    99+
    2024-04-02
  • 如何在java中使用ImageReader和BufferedImage获取图片的尺寸
    如何在java中使用ImageReader和BufferedImage获取图片的尺寸?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ImageReader 对象通常由特定格式的服...
    99+
    2023-05-30
  • java中如何将一图片同比例缩小绘制
    小编给大家分享一下java中如何将一图片同比例缩小绘制,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在获得客户端的一个图片后,发现传过来的图片太大,不宜在已经排版好的格式里面显示出来,特别是页面的图片特别多时,更不能都让大...
    99+
    2023-06-03
  • python如何将图片批量保存至word文档中
    目录将图片批量保存至word文档中将本地图片存储到word文档解决的方法总结将图片批量保存至word文档中 def picture_docx(path_picture,path_do...
    99+
    2023-02-01
    python图片 图片批量保存 图片保存至word文档
  • Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
    问题:将图片转成datauri 今天,在QQ群有个群友问了个问题:“nodejs读取图片,转成base64,怎么读取呢?” 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即如何把图片转成对应的 da...
    99+
    2022-06-04
    进阶 中去 转成
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作