出于多种原因,从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,背景设置,数字签名,文档加密等等。