Spire.Doc for Java 是一款专业的Java Word组件,开发人员使用它可以轻松地将Word文档创建、读取、编辑、转换和打印等功能集成到自己的Java应用程序中。
本文介绍使用Spire.Doc for Java来读取Word文本框的方法,读取时,可读取文本框中的文本、图片、表格等。可获取最新版测试。
用于测试的Word源文档如下图:
读取文本框中的文本
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextBox;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractText {
public static void main(String[] args) throws IOException {
//加载含有文本框的Word文档
Document doc = new Document();
doc.loadFromFile("test.docx");
//获取文本框
TextBox textbox = doc.getTextBoxes().get(0);
//保存文本框中的文本到指定文件
File file = new File("ExtractedText.txt");
if (file.exists())
{
file.delete();
}
file.createNewFile();
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
//遍历文本框中的对象
for (Object object:textbox.getBody().getChildObjects())
{
//判定是否为文本段落
if(object instanceof Paragraph)
{
//获取段落中的文本
String text = ((Paragraph) object).getText();
//写入文本到txt文档
bw.write(text);
}
}
bw.flush();
bw.close();
fw.close();
}
}
文本读取结果:
读取文本框中的图片
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextBox;
import javax.imageio.ImageIO;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ExtractImg {
public static void main(String[] args) throws IOException {
//加载含有文本框的Word文档
Document doc = new Document();
doc.loadFromFile("test.docx");
//获取文本框
TextBox textbox = doc.getTextBoxes().get(0);
//创建List对象
List images = new ArrayList();
//遍历文本框中所有段落
for (int i = 0 ; i < textbox.getBody().getParagraphs().getCount();i++) { Paragraph paragraph = textbox.getBody().getParagraphs().get(i); //遍历段落中的所有子对象 for (int j = 0; j < paragraph.getChildObjects().getCount(); j++) { Object object = paragraph.getChildObjects().get(j); //判定对象是否为图片 if (object instanceof DocPicture) { //获取图片 DocPicture picture = (DocPicture) object; images.add(picture.getImage()); } } } //将图片以PNG文件格式保存 for (int z = 0; z < images.size(); z++) { File file = new File(String.format("图片-%d.png", z)); ImageIO.write((RenderedImage) images.get(z), "PNG", file); } } }
图片读取结果: