本文介绍使用spire.doc for java来读取word文本框的方法,读取时,可读取文本框中的文本、图片、表格等。其中,读取文本框中的表格可以参考这篇文章。以下内容为读取文本和图片。
用于测试的word源文档如下图:
1、读取文本框中的文本
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();
}
}
文本读取结果:
2、读取文本框中的图片
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);
}
}
}
图片读取结果: