java word中插入图片_在Word文档中插入图片
小编典典
首先,我想指出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文档中插入图片相关推荐
- mysql 将xml插入数据库_从xml文档中读取数据并插入mysql数据库中
// TODO: Add your control notification handler code here CMarkup xml; xml.Load("色谱案例表.xml" ...
- 换行样式不要首行缩进_修改文档样式库中的“正文”样式,使得文档中所有正文段落首行缩进2个字符。...
问答题请在[答题]菜单下选择[进入考生文件夹]命令,并按照题目要求完成下面的操作.注意:以下的文件必须都保存在考生文件夹下.在考生文件夹下打开文档WORD.DOCX.[背景素材]为了更好地介绍公司的服 ...
- ms office word2013教程 - 如何将A文档中的样式复制到B文档中
将A文档中的样式复制到B文档中 选择 [文件] -> [选项],在弹出的 [Word选项] 框中选择 [加载项],然后按照图示进行操作,最后记得点击保存即可.
- 来一段word的vba代码,实现将文档中的图片尺寸统一
以下是一段VBA代码,它可以实现将Microsoft Word文档中的所有图片尺寸统一为指定的高度和宽度: Sub ResizeAllImages()Dim shp As Shape For Each ...
- word文字铺满页面_Word 2010文档中让水印铺满整个页面的设置方法
在Word 2010中,通过简单的鼠标单击即可为文档添加水印,但这样只能在每一个文档页面内添加一个水印,这个在前面的文章已经有所介绍,具体请见:Word文档添加内置水印.个性化图片及文字水印的方法,但 ...
- 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?
概要:「我的ABC软件工具箱」提供了删除空白页的功能,轻轻松松就可以实现批量删除文档中的空白页.目前支持 Word.PDF.PPT 以及 Excel 等格式文件文件.操作非常的方便,处理也非常高效! ...
- 计算机文档插入操作,电脑在word2007文档中插入数学公式的方法
Word 2007是一款老牌的办公软件套装,但基本的文字.表格.演示都能完成,运行速度快,体积小巧赢得很多用户喜爱.数学老师在word2007文档编辑公式类的计算题,需要插入数学公式,这该如何操作?如 ...
- python docx 提取图片_Python提取docx文档中所有嵌入式图片和浮动图片
术语: 浮动图片,是指在Word文档中位置可以自由移动.可以环绕文字或放置于文字上方.下方的图片,不占文档流的位置,可以和文字或嵌入式图片重叠. 嵌入式图片或行内图片,和文档中的文字一样占文档流的位置 ...
- office 里的链接如何显示成图片_微软Office文档 | Office小程序介绍(一)
微软中国Office 365 for WeChat团队开发了四款好用方便的小程序--「微软Office文档」「微软听听文档」「微软AI识图」「微软海报」.它们的受众已经十分庞大,但相信仍旧有不少人与其 ...
- 解决把QQ截图或者QQ聊天的图片复制到wps文档中无法完全显示的简单方法
虽然wps里面是有截图工具的,但是依然有不少人喜欢用qq截图,而且有时候直接需要的是QQ聊天中的图片,所以有时候写文档时候会直接将QQ的图片复制过来.然而,有一个问题,我们将用qq截图截出来的图片复制 ...
最新文章
- 如何运行react创项目
- linux 调试引导程序,c-调试syslinux看到的引导文件系统环境?
- 10nm时代,高通霸主地位还能挺多久?
- RESTful---SpringMVC学习笔记(十三)
- 在Spring MVC Web应用程序中添加社交登录:集成测试
- 每日一题(30)—— 局部变量能否和全局变量重名?
- JDK源码解析之 Java.lang.AbstractStringBuilder
- jquery验证框架validate的使用
- BZOJ 1007 [HNOI2008]水平可见直线 ——半平面交 凸包
- Python基础——深拷贝、浅拷贝
- 微信定位服务器在哪个位置打开,微信开了定位功能附近的人都看不到我是怎么回事...
- SVN、GIT图标不显示解决方案
- 靠谱,这个低代码平台贼好用
- 《少有人走的路1:心智成熟的旅程》第一部分:自律 - 问题和痛苦
- 日本教育家多湖辉的《学生用功术》 (1)
- 移动调试工具weinre安装和使用
- Application.mk Android.mk
- stm32+定时器PWM波+电机驱动+直流电机
- php同学录网站设计_php校友录网站设计
- python flask 在线可视化平台系统