首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Java中的Apache POI XWPF将图片添加到.docx文档中

要在Java中使用Apache POI XWPF将图片添加到.docx文档中,请按照以下步骤操作:

  1. 首先,确保已安装Apache POI库。如果尚未安装,请在Maven项目中添加以下依赖项:
代码语言:xml<dependency>
复制
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>5.2.1</version>
</dependency><dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>5.2.1</version>
</dependency>
  1. 接下来,创建一个.docx文档并将其转换为XWPFDocument对象。以下是一个示例:
代码语言:java
复制
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("input.docx");
        XWPFDocument document = new XWPFDocument(fis);
        FileOutputStream fos = new FileOutputStream("output.docx");

        // 在此处添加图片

        document.write(fos);
        document.close();
        fos.close();
    }
}
  1. 现在,在文档中添加图片。以下是一个示例:
代码语言:java
复制
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.PictureData;
import org.apache.poi.xwpf.usermodel.PictureType;
import org.apache.poi.xwpf.usermodel.XWPFPicture;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("input.docx");
        XWPFDocument document = new XWPFDocument(fis);
        FileOutputStream fos = new FileOutputStream("output.docx");

        // 添加图片
        FileInputStream imageStream = new FileInputStream("image.png");
        byte[] imageBytes = new byte[imageStream.available()];
        imageStream.read(imageBytes);
        imageStream.close();

        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("这是一个图片:");

        XWPFPicture picture = run.addPicture(imageBytes, PictureType.PNG);
        picture.setWidth(100);
        picture.setHeight(100);

        document.write(fos);
        document.close();
        fos.close();
    }
}

在此示例中,我们首先创建一个XWPFDocument对象,然后添加一个图片,并将其宽度和高度设置为100像素。最后,我们将修改后的文档保存到output.docx文件中。

请注意,此示例仅适用于PNG格式的图片。如果要添加其他格式的图片,请将PictureType.PNG替换为适当的图片类型,例如PictureType.JPEGPictureType.GIF

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

html可以转换成word_html显示word文档

目前从html转换word为doc格式,而图片处理支持docx格式,所以需要手动把doc另存为docx,然后才可以进行图片替换。...一.添加maven依赖 主要使用了以下和poi相关依赖,为了便于获取html图片元素,还使用了jsoup: org.apache.poi</groupId...,多张图片就会报错,是因为添加了图片,processParagraphs方法runs大小改变了,会报ArrayList异常,就和我们循环list删除元素会报异常道理一样,解决方法就是复制一个新...org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;import org.apache.poi.xwpf.usermodel.XWPFTable...;import org.apache.poi.xwpf.usermodel.XWPFTableCell;import org.apache.poi.xwpf.usermodel.XWPFTableRow

7.8K30

Apache POI详解及Word文档读取示例

系列文章: Java 操作 Office:POI 之 word 生成 Java 操作 Office:POI 之 word 图片处理 Java 操作 Office:POI word 之网络图片处理 Java...根据官网描述,poi是微软文档系列Java API。这里微软文档(Microsoft Documents),就是指word、excel(xls 和 xlsx)、PowerPoint 等。...; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument...org.apache.poi.hwpf.usermodel.Range; import java.io.*; /** * 注:HWPFDocument对应 word.doc,不支持.docx...我们打印了文档每个段落以及该段落格式,以本地测试时使用文档为例,输出如下: 0,0,正文 1,0,正文 2,1,标题 1 3,2,标题 2 4,0,正文 5,2,标题 2 6,0,正文 7,2,标题

6K31

Apache POI详解及Word文档读取示例

系列文章: Java 操作 Office:POI 之 word 生成 Java 操作 Office:POI 之 word 图片处理 Java 操作 Office:POI word 之网络图片处理 Java...根据官网描述,poi是微软文档系列Java API。这里微软文档(Microsoft Documents),就是指word、excel(xls 和 xlsx)、PowerPoint 等。...; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument...org.apache.poi.hwpf.usermodel.Range; import java.io.*; /** * 注:HWPFDocument对应 word.doc,不支持.docx...我们打印了文档每个段落以及该段落格式,以本地测试时使用文档为例,输出如下: 0,0,正文 1,0,正文 2,1,标题 1 3,2,标题 2 4,0,正文 5,2,标题 2 6,0,正文 7,2,标题

2.7K40

Java 操作 Office:POI word 之文档信息提取

系列文章: Java 操作 Office:POI 之 word 生成 Java 操作 Office:POI 之 word 图片处理 Java 操作 Office:POI word 之网络图片处理 Java...操作 Office:POI word 之表格格式 Apache POI详解及Word文档读取示例 楔子 工作忙碌,又是好久不见。...二 基于apache poi内容提取 关于apache poi,基础信息介绍、jar包依赖引入方式已经在之前系列文章:Apache POI详解及Word文档读取示例 做了介绍,所以这里不再赘述。...我们可以使用poi提供api来读取worddoc 和 docx格式文档,并能够获取到每个段落格式(style),判断是目录,正文,还是标题等。...这里再强调一下,因为doc 和 docx是两种完全不同格式,所以我们考虑把word文档文本内容转为统一格式,来存储格式信息,便于后续统一处理。

3K20

Java中用Apache POI生成excel和word文档

概述: 最近在做项目的过程遇到了excel数据导出和word图文表报告导出功能,最后决定用Apache POI来完成该项功能。...本文就项目实现过程一些思路与代码与大家共享,同时,也作为自己一个总结,以备后用。 功能: 1、从数据库查询数据导出为excel; 2、导出word包括,内容有文字,图片,表格等。 效果: ?...; import java.math.BigInteger; import org.apache.poi.util.Units; import org.apache.poi.xwpf.usermodel.ParagraphAlignment...; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph...; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import

3K40

我还是输给了免费富文本编辑器

说说我做一些努力 考虑给百度编辑器开发一个二次插件,等下会进行说明如何使用改源码方式开发二次插件 后端增加接口,接受word文档,转为html返回前台,前台再根据html内容对于富文本编辑框继续赋值和一些处理...后端为word文件做转化为html操作,然后html原文返回给前端 做这个接口要特别的小心,需要防止接口被滥用,拖垮服务器资源,因为转化和图片存储代价还是不小,需要控制可以转化大小 前文也说了...注意以下:docx 和 doc 在poi里面是需要用不同对象进行操作,后续自己也会补一补这一块内容 poi 还是挺强,很牛逼,把巨硬那一套治服服帖帖 import org.apache.commons.io.FileUtils...; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFNumbering....*; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; /** * 根据poi

87820

Android 使用 ApachePOI 组件读写 Word doc 和 docx 文件

最近在项目中要生成Worddoc和docx文件,一番百度google之后,发现通过java语言实现主流是ApachePOI组件。...由于项目中只是用到了doc和docx组件,下面也只是介绍这两个组件使用 一、在Android Studio如何POI组件 从POI官网上看,貌似暂并不支持IntelliJ IDE,如下图,所以这里我们采用直接下载...通过官网 ->Overview->Components,可以看到 d和docx文件分别对应着组件HWPF和XWPF,而HWPF和XWPF则对应着poi-scratchpad和poi-ooxml ?...有兴趣同学可以研究研究。 二、实现doc文件读写 Apache POIHWPF模块是专门用来读取和生成doc格式文件。...文件读写 POI在读写word docx文件时是通过xwpf模块来进行,其核心是XWPFDocument。

4.1K100

Java 渲染 docx 文件,并生成 pdf 加水印

最近做了一个比较有意思需求,实现比较有意思。 需求: 用户上传一个 docx 文件,文档中有占位符若干,识别为文档模板。 用户在前端可以标签拖拽到模板上,替代占位符。...对 docx 文档格式转换: 一顿google以后发现了 StackOverflow 上这个回答:Converting docx into pdf in java 使用如下 jar 包: Apache...POI 3.15 org.apache.poi.xwpf.converter.core-1.0.6.jar org.apache.poi.xwpf.converter.pdf-1.0.6.jar fr.opensagres.xdocreport.itext.extension...渲染模板 第一种思路, docx 装换为 html 纯文本格式,再使用 Java 现有的模板引擎(freemark,velocity)渲染内容。...但是 docx 文件装换为 html 还是会有极大格式损失。 pass。 第二种思路。直接操作 docx 文档docx 文档中直接占位符替换为内容。

2.8K10

Word自动化(C# + Python)(持续更新...)

总之, 这里通过使用一些库, Pythonpython-docx, C#pdfbox和npoi, 来让对Word和PDF处理变得更加自动化一些。...NPOI NPOI安装 Apache POIApache软件基金会开放源码库, POI提供API给Java程序对Microsoft Office格式文件读和写功能. .NET开发人员则可以利用.../tt.docx') 代码其实很好懂, 关于python-docx一些细节操作, 除了官方文档, 我在后面的自动化生成Word里面也会分享一些我处理经验, 当然, 更多是处理时候坑。...读取PDF内容 同样, 这次用是C#库, 名为Pdfbox. 其实呢, 这个Pdfbox是个Java库. 是由Apache PDFBox团队为.NET生成。 ?...Microsoft.Office.Interop.Word是巨硬提供com组件, 那么要如何使用它呢, 你要先装Windows, 再装Office, Office2013对应这个com组件15.x版本

2.3K30

poi-tl实现对Word模板复杂表格数据填充

官方文档 why poi-tl 方案 移植性 功能性 易用性 Poi-tl Java跨平台 Word模板引擎,基于Apache POI,提供更友好API 低代码,准备文档模板和数据即可 Apache...POI Java跨平台 Apache项目,封装了常见文档操作,也可以操作底层XML结构 文档不全,这里有一个教程:Apache POI Word快速入门 Freemarker XML跨平台 仅支持文本...代码高亮 word中代码块高亮展示,支持26种语言和上百种着色样式 Markdown Markdown渲染为word文档 Word批注 完整批注功能,创建批注、修改批注等 Word附件 Word插入附件...SDT内容控件 内容控件内标签支持 Textbox文本框 文本框内标签支持 图片替换 原有图片替换成另一张图片 书签、锚点、超链接 支持设置书签,文档内锚点和超链接功能 Expression Language...只能操作word表格, 不能操作Excel表格 How poi-tl 1. 版本问题 在使用poi-tl时, 需要注意版本之间冲突问题.

7.9K20

Word自动化(C# + Python)(持续更新...)

总之, 这里通过使用一些库, Pythonpython-docx, C#pdfbox和npoi, 来让对Word和PDF处理变得更加自动化一些....Apache POIApache软件基金会开放源码库, POI提供API给Java程序对Microsoft Office格式文件读和写功能. .NET开发人员则可以利用NPOI(POI for...] ----- NPOI提取Word内容 其实NPOI非常强大, 足以用来做和Word有关一切了, 但是, 这里只演示一下提取Word内容, 因为后面有python-docx这样更加轻巧库, 不需要.../tt.docx') 代码其实很好懂, 关于python-docx一些细节操作, 除了官方文档, 我在后面的自动化生成Word里面也会分享一些我处理经验, 当然, 更多是处理时候坑(手动无奈)....Microsoft.Office.Interop.Word是巨硬提供com组件, 那么要如何使用它呢, 你要先装Windows, 再装Office, Office2013对应这个com组件15.x版本

1.8K00
领券