如何从Java应用程序中的Word中提取文本和图像
#java #word #text #docx

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

第1部分:了解spire.doc库

要从Java中的Word中提取文本和图像,我们将使用Spire.doc lib。 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>

从字中提取文字

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

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();
            }
        }
    }
}

从单词中提取图像

您可以使用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文档中提取文本和图像并将其保存到计算机中。无论您是需要单独编辑文本还是在另一个项目中使用图像,此过程都可以帮助您有效地实现目标。 java的spire.doc支持一组丰富的单词元素,包括部分,标头,页脚,脚注,eNdNote,endnote,endnote,list,list,table,table,toc,toc,toc,form field,邮件合并,超链接,书签,书签,水印,图像,图像,样式,样式,形状,文本框,ole,wordArt,背景设置,数字签名,文档加密等等。

相关话题:

  1. Java Find and Replace Text in Word Documents
  2. Java Insert Images to Word Documents
  3. Java Add Text Watermarks or Image Watermarks to Word
  4. Java Add Background Color or Picture to Word Documents
  5. Java Compare Two Word Documents