java打開word
Ⅰ java操作word 的有哪幾種方式
java讀取word文檔時,雖然網上介紹了很多插件poi、java2Word、jacob、itext等等,poi無法讀取格式(新的API估
計行好像還在處於研發階段,不太穩定,做項目不太敢用);java2Word、jacob容易報錯找不到注冊,比較詭異,我曾經在不同的機器上試過,操作
方法完全一致,有的機器不報錯,有的報錯,去他們論壇找高人解決也說不出原因,項目部署用它有點玄;itxt好像寫很方便但是我查了好久資料沒有見到過關
於讀的好辦法。經過一番選擇還是折中點採用rtf最好,畢竟rtf是開源格式,不需要藉助任何插件,只需基本IO操作外加編碼轉換即可。rtf格式文件表
面看來和doc沒啥區別,都可以用word打開,各種格式都可以設定。
----- 實現的功能:讀取rtf模板內容(格式和文本內容),替換變化部分,形成新的rtf文檔。
----- 實現思路:模板中固定部分手動輸入,變化的部分用$info$表示,只需替換$info$即可。
1、採用位元組的形式讀取rtf模板內容
2、將可變的內容字元串轉為rtf編碼
3、替換原文中的可變部分,形成新的rtf文檔
主要程序如下:
public String bin2hex(String bin) {
char[] digital = "0123456789ABCDEF".toCharArray();
StringBuffer sb = new StringBuffer("");
byte[] bs = bin.getBytes();
int bit;
for (int i = 0; i < bs.length;i++) {
bit = (bs[i] & 0x0f0)
>> 4;
sb.append("\\'");
sb.append(digital[bit]);
bit = bs[i] & 0x0f;
sb.append(digital[bit]);
}
return sb.toString();
}
public String readByteRtf(InputStream ins, String path){
String sourcecontent =
"";
try{
ins = new
FileInputStream(path);
byte[] b
= new byte[1024];
if (ins == null) {
System.out.println("源模板文件不存在");
}
int bytesRead = 0;
while (true) {
bytesRead = ins.read(b, 0, 1024); // return final read bytes
counts
if(bytesRead == -1) {// end of InputStream
System.out.println("讀取模板文件結束");
break;
}
sourcecontent += new String(b, 0, bytesRead); // convert to string
using bytes
}
}catch(Exception e){
e.printStackTrace();
}
Ⅱ java,用xml生成word文檔,打開生成的word時,顯示如下圖所示,是什麼原因呢
1.可能是低版本打開高版本。或者是格式不相同。
2.文檔損壞了。
解決辦法:
方法一:利用word2002/2003的「打開並修復」功能來修復文擋。
(1)啟動word2002/2003,單擊「文件-----打開」,在「打開」對話框中選重要修復的word文擋。
(2)單擊「打開」按鈕右邊的下三角按鈕,在彈出的下拉菜單中選中「打開並修復」選項,即可對損壞的文擋進行修復,修復完成後,顯示文擋內容。
方法二:轉換文擋格式來修復文擋。
(1)啟動word2000後單擊「工具------選項-------常規」。在該選項卡中選中「打開時確認轉換」復選框,並單擊「確定」按鈕。
(2)單擊「文件---打開」,在彈出的「打開」對話框中選中要恢復的文件,並在「文件類型」框中選中「從任意文件中恢復文本」。
(3)單擊「打開「按鈕自動對孫換文擋進行轉換修復。
(4)如果顯示的文擋內容混亂,單擊「文件---另存為」,將文擋保存為「RTF格式」或其他word所識別的格式。
(5)保存後關閉文擋,再次打開以「RTF格式」保存的文擋即可看到完整的文擋。
(6)再將文擋保存為「DOC格式」即可,這樣就完成了對孫換文擋的修復操作。
方法三:重設格式法
Word用文檔中的最後一個段落標記關聯各種格式設置信息,特別是節與樣式的格式設置。這樣我們就可以將最後一個段落標記之外的所有內容復制到新文檔,就有可能將損壞的內容留在原始文檔中。步驟如下:
①在Word中打開損壞的文檔,選擇「工具→選項」然後選擇「編輯」選項卡,取消「使用智能段落選擇范圍」復選框前的勾。取消選中該復選框,選定整個段落時,Word將不會自動選定段落標記,然後單擊「確定」按鈕。
②選定最後一個段落標記之外的所有內容,方法是:按「Ctrl+End」組合鍵,然後按「Ctrl+Shift+Home」組合鍵。
③在常用工具欄中,依次單擊「復制」、「新建」和「粘貼」按鈕。