本文目錄一覽:
- 1、java下載doc/docx文件亂碼的問題
- 2、JAVA 如何實現docx文檔轉換成txt?
- 3、java 複製docx文件出現的問題
- 4、用java打開一個word文檔(a.docx) 怎麼搞
- 5、java怎麼給word文檔加水印
- 6、java操作docx的問題
java下載doc/docx文件亂碼的問題
java下載文件是在什麼平台(win,linux?)運行的,又是如何打開看到亂碼的(手動、自動、何種方式)?
JAVA 如何實現docx文檔轉換成txt?
docx文檔沒辦法直接轉成txt,兩者文件格式不一樣,需要你解析docx文檔,把裏面的內容提取出來,以你想要的形式轉化成文本,通過io操作創建對應的txt文件,把文本輸出到txt文件
java 複製docx文件出現的問題
這必須不行 假如你byte數組 1024大小 要複製的文件是2050 那按照你這玩法
弄完了 新文件肯定是3072 最後幾個位元組都是錯的
第一次讀1024 寫1024 第二次讀1024 寫1024
第三次讀2 但是寫的還是1024 至於那1022個位元組都是0 估計
如果是mp3或者電影什麼的還好 要是word文檔必須打不開 那幾個位元組肯定是重要的控制編碼位元組
簡單寫了一個類 相信你能看懂
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
private DataInputStream in;
private DataOutputStream out;
public static void main(String[] args) {
try {
new CopyFile().foo();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
//複製方法
public void foo() throws FileNotFoundException, IOException {
in = new DataInputStream(new FileInputStream(…………));
out = new DataOutputStream(new FileOutputStream(…………));
byte[] buffer = new byte[2048];
int offset = 0;
while ((offset = in.read(buffer, 0, buffer.length)) != -1) {
out.write(buffer, 0, offset);
}
in.close();
out.close();
}
}
很常用的一個方法 記住吧~
用java打開一個word文檔(a.docx) 怎麼搞
package cn.rain.main;
import java.io.File;
import java.io.IOException;
public class TT {
/**
* @param args
*/
public static void main(String[] args) {
try {
Runtime.getRuntime().exec(“C:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE aa.doc”);
} catch (IOException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
}
}
你的WORD安裝路徑C:\\Program Files\\Microsoft Office\\OFFICE11\\WINWORD.EXE空格後所加的aa.doc為你的文檔文件名(有文件名重複的,可以加路徑,寫法和安裝路徑的寫法一樣)
或者用Runtime.getRuntime().exec(“cmd /c \”C:\\temp\\the list.doc\””);
也可以運行
java怎麼給word文檔加水印
可以使用Free Spire.Doc for Java在word文檔中添加文本水印或圖片水印。Free Spire.Doc for Java下載鏈接:網頁鏈接
1.添加文本水印——代碼如下:
import com.spire.doc.*;
import com.spire.doc.documents.WatermarkLayout;
import java.awt.*;
public class WordTextWatermark {
public static void main(String[] args) {
Document document = new Document();
document.loadFromFile(“Sample.docx”);
insertTextWatermark(document.getSections().get(0));
}
private static void insertTextWatermark(Section section) {
TextWatermark txtWatermark = new TextWatermark();
txtWatermark.setText(“內部使用”);
txtWatermark.setFontSize(40);
txtWatermark.setColor(Color.red);
txtWatermark.setLayout(WatermarkLayout.Diagonal);
section.getDocument().setWatermark(txtWatermark);
}
}
2.添加圖片水印——代碼如下:
import com.spire.doc.*;
public class WordImageWatermark {
public static void main(String[] args) throws Exception{
Document document = new Document();
document.loadFromFile(“Sample.docx”);
PictureWatermark picture = new PictureWatermark();
picture.setPicture(“logo.png”);
picture.setScaling(5);
picture.isWashout(false);
document.setWatermark(picture);
document.saveToFile(“out/result2.docx”,FileFormat.Docx )
}
}
java操作docx的問題
docx 其實是用zip打包了的一堆xml,所以仍然是 binary 格式的
你先嘗試下,把你 attachFile.getFileContent 的內容拿出來,直接寫本地看看
contenttype 這裡也看不到你寫的是啥,所以不能判斷
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/296293.html