小编典典

首先,我想指出apache poi-

Link提供的示例,即正确的方法是

doc.createParagraph().createRun().addPicture(new FileInputStream(imgFile), format, imgFile, Units.toEMU(200), Units.toEMU(200));

但是,仍然存在一个现有错误,在执行上述语句后,该.docx文件将变得不可读。可能很快会解决,在这种情况下,上述声明将起作用。同时,有一种解决方法。

首先,生成没有任何图片的docx文件。然后将此类添加CustomXWPFDocument到您的包中。

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.xmlbeans.XmlException;

import org.apache.xmlbeans.XmlToken;

import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;

import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;

import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;

import java.io.IOException;

import java.io.InputStream;

public class CustomXWPFDocument extends XWPFDocument

{

public CustomXWPFDocument(InputStream in) throws IOException

{

super(in);

}

public void createPicture(String blipId,int id, int width, int height)

{

final int EMU = 9525;

width *= EMU;

height *= EMU;

//String blipId = getAllPictures().get(id).getPackageRelationship().getId();

CTInline inline = createParagraph().createRun().getCTR().addNewDrawing().addNewInline();

String picXml = "" +

"" +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

" " +

"";

//CTGraphicalObjectData graphicData = inline.addNewGraphic().addNewGraphicData();

XmlToken xmlToken = null;

try

{

xmlToken = XmlToken.Factory.parse(picXml);

}

catch(XmlException xe)

{

xe.printStackTrace();

}

inline.set(xmlToken);

//graphicData.set(xmlToken);

inline.setDistT(0);

inline.setDistB(0);

inline.setDistL(0);

inline.setDistR(0);

CTPositiveSize2D extent = inline.addNewExtent();

extent.setCx(width);

extent.setCy(height);

CTNonVisualDrawingProps docPr = inline.addNewDocPr();

docPr.setId(id);

docPr.setName("Picture " + id);

docPr.setDescr("Generated");

}

}

然后,通过添加图片来创建更新的文档,如下所示:-

CustomXWPFDocument document = new CustomXWPFDocument(new FileInputStream(new File("C:\\Users\\Avarice\\Desktop\\doc1.docx")));

FileOutputStream fos = new FileOutputStream(new File("C:\\Users\\Avarice\\Desktop\\doc2.docx"));

String id = document.addPictureData(new FileInputStream(new File("C:\\Users\\Avarice\\Desktop\\thumbnail.jpg")), Document.PICTURE_TYPE_JPEG);

document.createPicture(id,document.getNextPicNameNumber(Document.PICTURE_TYPE_JPEG), 64, 64);

document.write(fos);

fos.flush();

fos.close();

您还应该在构建路径中包含以下jar:

poi-ooxml-schemas

2020-09-16

java word中插入图片_在Word文档中插入图片相关推荐

  1. mysql 将xml插入数据库_从xml文档中读取数据并插入mysql数据库中

    // TODO: Add your control notification handler code here CMarkup xml; xml.Load("色谱案例表.xml" ...

  2. 换行样式不要首行缩进_修改文档样式库中的“正文”样式,使得文档中所有正文段落首行缩进2个字符。...

    问答题请在[答题]菜单下选择[进入考生文件夹]命令,并按照题目要求完成下面的操作.注意:以下的文件必须都保存在考生文件夹下.在考生文件夹下打开文档WORD.DOCX.[背景素材]为了更好地介绍公司的服 ...

  3. ms office word2013教程 - 如何将A文档中的样式复制到B文档中

    将A文档中的样式复制到B文档中 选择 [文件] -> [选项],在弹出的 [Word选项] 框中选择 [加载项],然后按照图示进行操作,最后记得点击保存即可.

  4. 来一段word的vba代码,实现将文档中的图片尺寸统一

    以下是一段VBA代码,它可以实现将Microsoft Word文档中的所有图片尺寸统一为指定的高度和宽度: Sub ResizeAllImages()Dim shp As Shape For Each ...

  5. word文字铺满页面_Word 2010文档中让水印铺满整个页面的设置方法

    在Word 2010中,通过简单的鼠标单击即可为文档添加水印,但这样只能在每一个文档页面内添加一个水印,这个在前面的文章已经有所介绍,具体请见:Word文档添加内置水印.个性化图片及文字水印的方法,但 ...

  6. 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?

    概要:「我的ABC软件工具箱」提供了删除空白页的功能,轻轻松松就可以实现批量删除文档中的空白页.目前支持 Word.PDF.PPT 以及 Excel 等格式文件文件.操作非常的方便,处理也非常高效! ...

  7. 计算机文档插入操作,电脑在word2007文档中插入数学公式的方法

    Word 2007是一款老牌的办公软件套装,但基本的文字.表格.演示都能完成,运行速度快,体积小巧赢得很多用户喜爱.数学老师在word2007文档编辑公式类的计算题,需要插入数学公式,这该如何操作?如 ...

  8. python docx 提取图片_Python提取docx文档中所有嵌入式图片和浮动图片

    术语: 浮动图片,是指在Word文档中位置可以自由移动.可以环绕文字或放置于文字上方.下方的图片,不占文档流的位置,可以和文字或嵌入式图片重叠. 嵌入式图片或行内图片,和文档中的文字一样占文档流的位置 ...

  9. office 里的链接如何显示成图片_微软Office文档 | Office小程序介绍(一)

    微软中国Office 365 for WeChat团队开发了四款好用方便的小程序--「微软Office文档」「微软听听文档」「微软AI识图」「微软海报」.它们的受众已经十分庞大,但相信仍旧有不少人与其 ...

  10. 解决把QQ截图或者QQ聊天的图片复制到wps文档中无法完全显示的简单方法

    虽然wps里面是有截图工具的,但是依然有不少人喜欢用qq截图,而且有时候直接需要的是QQ聊天中的图片,所以有时候写文档时候会直接将QQ的图片复制过来.然而,有一个问题,我们将用qq截图截出来的图片复制 ...

最新文章

  1. 如何运行react创项目
  2. linux 调试引导程序,c-调试syslinux看到的引导文件系统环境?
  3. 10nm时代,高通霸主地位还能挺多久?
  4. RESTful---SpringMVC学习笔记(十三)
  5. 在Spring MVC Web应用程序中添加社交登录:集成测试
  6. 每日一题(30)—— 局部变量能否和全局变量重名?
  7. JDK源码解析之 Java.lang.AbstractStringBuilder
  8. jquery验证框架validate的使用
  9. BZOJ 1007 [HNOI2008]水平可见直线 ——半平面交 凸包
  10. Python基础——深拷贝、浅拷贝
  11. 微信定位服务器在哪个位置打开,微信开了定位功能附近的人都看不到我是怎么回事...
  12. SVN、GIT图标不显示解决方案
  13. 靠谱,这个低代码平台贼好用
  14. 《少有人走的路1:心智成熟的旅程》第一部分:自律 - 问题和痛苦
  15. 日本教育家多湖辉的《学生用功术》 (1)
  16. 移动调试工具weinre安装和使用
  17. Application.mk Android.mk
  18. stm32+定时器PWM波+电机驱动+直流电机
  19. php同学录网站设计_php校友录网站设计
  20. python flask 在线可视化平台系统

热门文章

  1. ABAP 通过LDB_PROCESS函数使用逻辑数据库
  2. Emacs footnote 自动排序
  3. Win11找不到显卡控制面板怎么办?
  4. 【腾讯Bugly干货分享】腾讯验证码的十二年
  5. 基于java的学生学籍管理系统(含源文件)
  6. 简约资源教程分享网模板,emlog模板
  7. 代码文本对比-前端工具
  8. 从微信打开链接不能正常上下滑动
  9. 学计算机高考英语听力考试时间,北京:2020年高考英语听力机考问答
  10. 北京市高等教育英语听力计算机考试,北京市2018年高考英语听力机考问答