如何使用Apache POI锁定docx中图像的长宽比?

时间:2019-04-15 16:31:02

标签: java image apache-poi docx

是否可以使用Apache POI为docx中的图像启用“锁定宽高比”选项? 我正在向运行添加图像,我想锁定其大小。 在文档中搜索,但未找到任何内容。

更清楚地说,我指的是word中可用的选项,如图所示: https://support.content.office.net/en-us/media/a30a8baa-6775-4931-bca6-199fda6afc6e.png

谢谢

1 个答案:

答案 0 :(得分:1)

答案取决于图片如何应用于ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "MoveToNext", "nextStep();", true); 文档。如果是通过XWPFRun.addPicture完成的,则这是文本运行中的内联图片。然后,运行包含一个绘图层,其中包含一个包含图片的内联元素。然后,此内联元素可能包含不可见的图形框架属性,这些属性可能具有图形框架锁,这些锁未将更改纵横比设置为true。

Word中的XML如下:

/word/document.xml

然后可以设置包含图片的<w:r> <w:drawing> <wp:inline ...> <wp:cNvGraphicFramePr><a:graphicFrameLocks noChangeAspect="true"/></wp:cNvGraphicFramePr> <a:graphic> ...

XWPFRun run

完整示例:

run.getCTR().getDrawingArray(0).getInlineArray(0).addNewCNvGraphicFramePr().addNewGraphicFrameLocks().setNoChangeAspect(true);