Как извлекать текст и изображения из Word в Java
Текст и изображения — важнейшие элементы, которые могут обогатить содержимое документа Word. Когда пользователям необходимо работать с текстом или изображениями отдельно от документа, оптимальным решением является их программное извлечение из документа Word. Извлечение текста гарантирует большее удобство и эффективность при работе с большими документами по сравнению с ручным копированием текста. Кроме того, извлечение изображений позволяет пользователям выполнять дальнейшее редактирование изображений в документе или без труда делиться ими с другими. В этой статье мы покажем, как извлекать текст и изображения из Word на Java с помощью библиотеки Free Spire.Doc for Java.
- Извлечение текста из Word в Java
- Извлечение изображений из Word в Java
Установка файла Free Spire.Doc.jar
Если вы создали
Maven-проект, вы можете легко импортировать jar в свое приложение, используя
следующие конфигурации. Для проектов, не использующих Maven, загрузите jar-файл
по этой
ссылке и добавьте его в качестве зависимости в свое приложение.
Извлечение текста из Word в Java
Free Spire.Doc для Java поддерживает извлечение текста из документов Word и сохранение его в формате текстового файла, что позволяет пользователям просматривать текстовое содержимое без ограничений устройства. В следующем фрагменте кода показано, как извлечь текст из документа 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 в Java
Извлекая изображения, пользователи могут без проблем импортировать их в другие приложения для дальнейшей обработки. Free Spire.Doc for 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 nodes = new LinkedList<>();
nodes.add(document);
//Create a ArrayList object to store extracted images
List 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 с помощью Free Spire.Doc for Java. Эта библиотека Word поддерживает и другие операции с документами Word, такие как: