效果图是真正的水印,不是图片放上去的:
废话不多说 直接上代码
public static void main(String[] args) throws Exception {
String path= "d:\\xxx.doc";
InputStream input = new FileInputStream(path);
DocWaterMarkUtils.docWaterMark(input,null,0,null);
}
/**
* 输入流,加水印后输出
*
* @param stream 输入流
* @param outputStream 输出流
* @param type 控制输出文件类型
* @param waterName 显示水印文字内容
*/
public static void docWaterMark(InputStream stream, OutputStream outputStream,int type,String waterName){
Document document = new Document();
if (0 == type) {
document.loadFromStream(stream, FileFormat.Doc);
InsertTextWatermark(document.getSections().get(0),waterName);
document.saveToStream(outputStream, FileFormat.Doc);
} else if (1 == type){
document.loadFromStream(stream, FileFormat.Docx);
InsertTextWatermark(document.getSections().get(0),waterName);
document.saveToStream(outputStream, FileFormat.Docx);
}
try {
outputStream.flush();
outputStream.close();
} catch (IOException e) {
log.error(e.getMessage(),e);
}finally {
try {
if (outputStream != null) {
outputStream.close();
}
} catch (Exception e) {
log.error(e.getMessage(),e);
}
}
}
/**
* 添加水印
*
* @param section
*/
private static void InsertTextWatermark(Section section,String waterName){
TextWatermark txtWatermark = new TextWatermark();
txtWatermark.setText(StringUtils.notNullAndEmpty(waterName) ? waterName : xxxx);
txtWatermark.setFontSize(FONT_SIZE);
txtWatermark.setColor(Color.gray);
txtWatermark.setLayout(WatermarkLayout.Diagonal);
section.getDocument().setWatermark(txtWatermark);
}
用到的第三方的jar包,地址是:
https://www.e-iceblue.cn/Downloads/Spire-Doc-JAVA.html
maven下载地址是:
https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html
建议本地测试看效果的话,直接下载jar包然后导入项目中,确定能满足需求的话再申请将依赖添加到公司私服.
jar导入项目方法:
项目中新建lib目录,然后jar复制粘贴进去,点jar右键 选择 addlib… 就可以了.
加油吧 少年.