如何在Java应用程序中从word中提取文本和图像

本文介绍了如何利用Spire.DocforJava库从Word文档中提取文本和图像。首先,需在项目中添加Spire.Doc的Maven依赖,然后通过示例代码展示了提取文本和保存到.txt文件,以及提取并保存图像到指定文件夹的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于多种原因,从 Word 文档中提取文本和图形可能是一项有用且必需的操作。也许您想保存文档中的图像以在另一个项目中使用,或者需要在新文档或项目中重用该内容。通过从 Word 文档中提取文本和图像,可以更轻松地与无法访问原始文档或软件的其他人共享内容。在这篇文章中,我们将向您展示如何使用 Spire.Doc for Java 库从 Java 中的 Word 文档中提取文本和图像。

用 Java 从 Word 中提取文本
用 Java 从 Word 中提取图像

第 1 部分:了解 Spire.Doc 库

要从 Java 中的 word 中提取文本和图像,我们将使用 Spire.Doc 库。Spire.Doc for Java 是一个专业的 Java Word API,使开发人员能够在不使用 Microsoft Office 的情况下创建、转换、操作和打印 Word 文档。它提供了多种用于处理 Word 文档的工具,包括提取文本和图形的功能。

在使用 Spire.Doc 之前,我们需要将其依赖项添加到我们的 Java 项目中。我们可以通过向 Maven 项目添加以下依赖项来实现此目的:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>11.6.0</version>
    </dependency>
</dependencies>

从 Word 中提取文本

提取文本后,您可以将其用于多种目的,例如总结文档、分析内容或根据提取的文本创建新文档。

import com.spire.doc.Document;
import java.io.FileWriter;
import java.io.IOException;

public class ExtractText {

    public static void main(String[] args) throws IOException {

        //Create a Document object and load a Word document
        Document document = new Document();
        document.loadFromFile("sample1.docx");

        //Get text from document as string
        String text=document.getText();

        //Write string to a .txt file
        writeStringToTxt(text," ExtractedText.txt");
    }
    public static void writeStringToTxt(String content, String txtFileName) throws IOException{
        FileWriter fWriter= new FileWriter(txtFileName,true);
        try {
            fWriter.write(content);
        }catch(IOException ex){
            ex.printStackTrace();
        }finally{
            try{
                fWriter.flush();
                fWriter.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }

从 Word 中提取图像

您可以使用 Spire.Doc for java 轻松地从 Java 应用程序中的 Word 文档中提取图像或一次性提取所有图像,并将它们保存为文件。

import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import com.spire.doc.interfaces.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.*;

public class ExtractImage {
    public static void main(String[] args) throws IOException {

        //Create a Document object and load a Word document
        Document document = new Document();
        document.loadFromFile("sample2.docx");

        //Create a queue and add the root document element to it
        Queue<ICompositeObject> nodes = new LinkedList<>();
        nodes.add(document);

        //Create a ArrayList object to store extracted images
        List<BufferedImage> images = new ArrayList<>();

        //Traverse the document tree
        while (nodes.size() > 0) {
            ICompositeObject node = nodes.poll();
            for (int i = 0; i < node.getChildObjects().getCount(); i++)
            {
                IDocumentObject child = node.getChildObjects().get(i);
                if (child instanceof ICompositeObject)
                {
                    nodes.add((ICompositeObject) child);
                }
                else if (child.getDocumentObjectType() == DocumentObjectType.Picture)
                {
                    DocPicture picture = (DocPicture) child;
                    images.add(picture.getImage());
                }
            }
        }

        //Save images to the specific folder
        for (int i = 0; i < images.size(); i++) {
            File file = new File(String.format("output/extractImage-%d.png", i));
            ImageIO.write(images.get(i), "PNG", file);
        }
    }
}

结论

总之,从 Word 文档中提取文本和图像对于各种目的来说都是一项非常有用的任务。通过执行上述步骤,您可以轻松地从 Word 文档中提取文本和图像并将其保存到您的计算机。无论您需要单独编辑文本还是在其他项目中使用图像,此过程都可以帮助您有效地实现目标。Spire.Doc for Java支持丰富的Word元素,包括节、页眉、页脚、脚注、尾注、段落、列表、表格、文本、目录、表单字段、邮件合并、超链接、书签、水印、图像、样式、形状、文本框、ole、艺术字、背景设置、数字签名、文档加密等等。

关注我的博客,您将在其中获得提示、技巧和挑战,以保持您的技能敏锐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值