将图片自适应大小插入到word文档
/ 6 min read
概述
如果手工新建word文档,插入图片是可以做到图片自适应等比缩放的,那么如何通过程序的方式来完成呢。
demo
通过一番搜索,了解到Java操作word添加图片的方法,Adding Images to a Word Document using Java;
重要的就是这几步
其中添加图片的重要代码如下,
首先创建一个段落,然后XWPFRun辅助类来添加图片,添加图片需要知道图片的像素大小。
优化1
关于图片大小的获取,demo代码中并没有处理,应该这么操作,
优化2
重要的是图片缩放计算,首先要直到常规A4纸张的大小,A4纸内容区域的大小。
A4纸宽=210mm,高=297mm,页面的内容左右边距分别都是31.8mm,上下边距分别是25.4mm;
只有这些尺寸是不够的,还不清楚这些尺寸可以保存多少像素。
通过搜索发现,A4纸在屏幕上的像素尺寸信息,https://cloud.tencent.com/developer/article/1505088;
分辨率是96像素/英寸时,A4纸的尺寸的图像的像素是794×1123;(默认),而1英寸=2.54cm。
这句话的意思是,如果一个图片的宽度是1280px那么换算成尺寸应该是,1280 / 96.0 * 25.4 = 330.2mm
优化3
直到了怎么处理图片像素到尺寸的转换,那么就可以考虑如何处理等比例缩放问题了。
1、计算图片宽带与内容区域宽度的比例
2、计算图片高度与内容区域高度的比例
3、取两个比例之中最小的值,如果比例大于1则图片不缩放保持原来的宽度和高度,否则执行缩放
汇总
完整的代码
重要的依赖