依赖如下
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>3.9.0</version>
</dependency>
使用方法
// 实例doc对象
Document document = new Document();
// 新增一页
Section section = document.addSection();
// 新增两个段落
Paragraph paragraph1 = section.addParagraph();
paragraph1.setText("段落1");
Paragraph paragraph2 = section.addParagraph();
paragraph2.setText("段落2");
// 设置第一个段落后的间距
paragraph1.getFormat().setAfterSpacing(10.0f);
// 第二个段落后插入图片
DocPicture docPicture2 = paragraph2.appendPicture("img/img1.png");
docPicture2.setTitle("图片2");
document.saveToFile("img/demo1.docx");
可以看到图片只是加进去了,但是这张长图太大了,显示的不全
所以按照 A4 纸 (210 * 297) 的比例缩小一下,这里根据宽度来等比缩小长度
// 获取图片宽度,setWidthScale里面的单位是%
float width = docPicture2.getWidth();
float scale = 210f / width * 100;
docPicture2.setWidthScale(scale);
docPicture2.setHeightScale(scale);
document.saveToFile("img/demo1.docx");
按照比例缩小了一些,但是感觉没有按照我想的比例显示出来,这里后面研究出来再补充。
找到原因了,我搞错了,这个 A4 纸单位是 mm。。。
// 获取图片宽度,setWidthScale里面的单位是%
float width = docPicture2.getWidth();
float scale1 = 450f / width * 100;
float scale2 = 900f / docPicture2.getHeight();
flocat scale = Math.min(scale1,scale2);
docPicture2.setWidthScale(scale);
docPicture2.setHeightScale(scale);
document.saveToFile("img/demo1.docx");