芜湖不芜
答案取决于图片如何应用于Word文档。如果这是通过XWPFRun.addPicture完成的,则它是文本运行中的内嵌图片。然后运行包含一个绘图层,其中包含一个包含图片的内联元素。然后,此内联元素可能包含非可视图形框架属性,这些属性可能具有将无变化方面设置为真的图形框架锁定。在看起来像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);完整示例:import java.io.*;import org.apache.poi.xwpf.usermodel.*;import org.apache.poi.util.Units;import java.util.List;import java.util.ArrayList;import java.net.URL;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.awt.Dimension;public class CreateWordPicturesInTextRuns { public static void main(String[] args) throws Exception { List<String> pictureURLs = new ArrayList<String>(); pictureURLs.add("https://www.eastcottvets.co.uk/uploads/Animals/gingerkitten.jpg"); pictureURLs.add("https://www.catster.com/wp-content/uploads/2017/12/A-kitten-meowing.jpg"); pictureURLs.add("https://www.animalfriends.co.uk/app/uploads/2014/08/06110347/Kitten-small.jpg"); pictureURLs.add("https://d27ucmmhxk51xv.cloudfront.net/media/english/illustration/kitten.jpg"); XWPFDocument document= new XWPFDocument(); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText("The kitten pictures: "); URL url; BufferedImage image; Dimension dim; ByteArrayOutputStream bout; ByteArrayInputStream bin; for (String pictureURL : pictureURLs) { try { url = new URL(pictureURL); image = ImageIO.read(url); dim = new Dimension(image.getWidth(), image.getHeight()); double width = dim.getWidth(); double height = dim.getHeight(); double scaling = 1.0; if (width > 72*3) scaling = (72*3)/width; //scale width not to be greater than 3 inches bout = new ByteArrayOutputStream(); ImageIO.write(image, "jpeg", bout); bout.flush(); bin = new ByteArrayInputStream(bout.toByteArray()); run = paragraph.createRun(); run.addPicture(bin, XWPFDocument.PICTURE_TYPE_JPEG, "kitten", Units.toEMU(width*scaling), Units.toEMU(height*scaling)); //lock aspect ratio run.getCTR().getDrawingArray(0).getInlineArray(0).addNewCNvGraphicFramePr().addNewGraphicFrameLocks().setNoChangeAspect(true); } catch (Exception ex) { ex.printStackTrace(); } } FileOutputStream out = new FileOutputStream("CreateWordPicturesInTextRuns.docx"); document.write(out); out.close(); document.close(); }}