Java 读取Word文本框中的文本/图片/表格
生活随笔
收集整理的這篇文章主要介紹了
Java 读取Word文本框中的文本/图片/表格
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Word可插入文本框,文本框中可嵌入文本、圖片、表格等內容。對文檔中的已有文本框,也可以讀取其中的內容。本文以Java程序代碼來展示如何讀取文本框,包括讀取文本框中的文本、圖片以及表格等。
【程序環境】
程序編輯環境為IntelliJ IDEA,并在程序中引入了free Spire.Doc.jar,安裝的Jdk版本為1.8.0。
【源文檔】
程序中用于測試的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("sample.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("sample.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);}} }3.讀取文本框中的表格
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 ExtractTable {public static void main(String[]args) throws IOException {//加載Word測試文檔Document doc = new Document();doc.loadFromFile("sample.docx");//獲取文本框TextBox textbox = doc.getTextBoxes().get(0);//獲取文本框中的表格Table table = textbox.getBody().getTables().get(0);//保存到文本文件File file = new File("ExtractedTable.txt");if (file.exists()){file.delete();}file.createNewFile();FileWriter fw = new FileWriter(file, true);BufferedWriter bw = new BufferedWriter(fw);//遍歷表格中的段落并提取文本for (int i = 0; i < table.getRows().getCount(); i++){TableRow row = table.getRows().get(i);for (int j = 0; j < row.getCells().getCount(); j++){TableCell cell = row.getCells().get(j);for (int k = 0; k < cell.getParagraphs().getCount(); k++){Paragraph paragraph = cell.getParagraphs().get(k);bw.write(paragraph.getText() + "\t");}}bw.write("\r\n");}bw.flush();bw.close();fw.close();} }(完))
?
總結
以上是生活随笔為你收集整理的Java 读取Word文本框中的文本/图片/表格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机主机地址填什么,什么是IP地址 何
- 下一篇: java 获得文本框文本_Java获取和