由于多种原因,从 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、艺术字、背景设置、数字签名、文档加密等等。
关注我的博客,您将在其中获得提示、技巧和挑战,以保持您的技能敏锐。