① java 中用poi讀取word和用docx4j讀取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 {
//載入Word文檔
Document document = new Document();
document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");
//獲取文檔中的文本保存為String
String text=document.getText();
//將String寫入Txt文件
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();
}
}
}}
2. 讀取圖片
import com.spire.doc.Document;
import com.spire.doc.documents.DocumentObjectType;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.interfaces.ICompositeObject;
import com.spire.doc.interfaces.IDocumentObject;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class ExtractImages {
public static void main(String[] args) throws IOException {
//載入Word文檔
Document document = new Document();
document.loadFromFile("C:\Users\Administrator\Desktop\sample.docx");
//創建Queue對象
Queue nodes = new LinkedList();
nodes.add(document);
//創建List對象
List images = new ArrayList();
//遍歷文檔中的子對象
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);
//獲取圖片並添加到List
if (child.getDocumentObjectType() == DocumentObjectType.Picture) {
DocPicture picture = (DocPicture) child;
images.add(picture.getImage());
}
}
}
}
//將圖片保存為PNG格式文件
for (int i = 0; i < images.size(); i++) {
File file = new File(String.format("output/圖片-%d.png", i));
ImageIO.write(images.get(i), "PNG", file);
}
}
}
注意這里使用的jar包是spire.doc.jar,需要在java程序中先導入jar文件。
② 有沒有人成功的用POI將圖片插入到word文檔中,給我個例子好么
樓主 你的問題解決了嗎? 我現在也是遇到這個問題 如果你解決能不能把源碼發到我郵箱:[email protected] 萬分感謝
③ 掃描件如何轉word文檔
首先將掃描件發給一個QQ好友,然後打開圖片並提取文字,最後將文字復制/粘貼到Word中即可。
格式
Microsoft Word X (Mac OS X)
Microsoft Word在當前使用中是佔有巨大優勢的文字處理器,這使得Word專用的檔案格式Word 文件(.doc)成為事實上最通用的標准。Word文件格式的詳細資料並不對外公開。
Word文件格式不只一種,因為隨Word軟體本身的更新,文件格式也會或多或少的改版,新版的格式不一定能被舊版的程序讀取(大致上是因為舊版並未內建支援新版格式的能力)。
微軟已經詳細公布Word 97的DOC格式,但是較新的版本資料仍未公開,只有公司內部、政府與研究機構能夠獲知。業界傳聞說某些Word文件格式的特性甚至連微軟自己都不清楚。
其他與Word競爭的辦公室作業軟體,都必須支援事實上最通用的Word專用的檔案格式。因為Word文件格式的詳細資料並不對外公開,通常這種兼容性是藉由逆向工程來達成。
許多文字處理器都有匯出、匯入Word檔案專用的轉換工具,譬如AbiWord或OpenOffice。(參照文本編輯器當中關於其他競爭軟體的說明。)
Apache Jakarta POI是一個開放原始碼的Java資料庫,其主要目標是存取Word的二進制文件格式。不久前,微軟自己也提供了檢視器,能夠不用Word程序就檢視Word文件。例:Word Viewer 2003。
Microsoft office Word 97到Microsoft office Word 2003之前的Word文件格式都是二進制文件格式。不久以前,微軟聲明他們接下來將以XML為基礎的檔案格式作為他們辦公室套裝軟體的格式。
Word 2003提供WordprocessingML的選項。這是一種公開的XML檔案格式,由丹麥政府等機構背書支持。Word 2003的專業版能夠直接處理非微軟的檔案規格。
以上內容參考:網路-Microsoft Office Word
④ java POI html轉word,無法顯示圖片
可以讀取元素,將word相應的元素轉換為html相應的元素。 不過很多word的特效都是html無法展示的,具體的做法可以參考poi的官方文檔,官方文檔很詳細。
⑤ 如何用poi向word插入圖片
狗泥塑張 ilruoic88
⑥ POI可否實現導出帶有圖片的word文件
poi jacob不太好用,樓主可以用PageOffice解決這個問題。 生成文件的時候替換模板標簽數據,插入圖片或合並多個word文檔都可以實現的。
⑦ poi怎麼實現word導入圖片
實際上還真就得一個一個set進去
我現在做的程序就有這部分機能,思路就是excel→sheet→row
然後遍歷所有row,取出所有的cell放到一個存儲用結構體中。
無論如何,解析的過程都需要自己來寫的。
你的想法我明白,其實就是想要一個java與poi的databinding,定義好的數據模塊可以自動和excel的對應列進行匹配。但是這個東西確實就沒有啊,人家只封裝了讀取excel內容,沒有提供這樣的模塊,只有自己寫啊。即使是60個列,事實上綁定的邏輯也就只用寫一次,而且大部分的內容只要復制粘貼就好了。