java aspose 加水印_java 对word添加水印 (aspose .jar)

该博客介绍了如何使用Aspose库在Java中为Word文档添加水印。通过示例代码展示了如何设置水印的位置、样式和内容,并提供了将水印插入页眉的实现方法。
摘要由CSDN通过智能技术生成

packagecom.tythin.tyboot.core.util;importcom.aspose.words.Document;importcom.aspose.words.HeaderFooter;importcom.aspose.words.HeaderFooterType;importcom.aspose.words.HorizontalAlignment;importcom.aspose.words.Paragraph;importcom.aspose.words.RelativeHorizontalPosition;importcom.aspose.words.RelativeVerticalPosition;importcom.aspose.words.Section;importcom.aspose.words.Shape;importcom.aspose.words.ShapeType;importcom.aspose.words.VerticalAlignment;importcom.aspose.words.WrapType;importorg.springframework.cglib.core.internal.Function;/***@authorkuangQingLin

*@version1.0

* @date 2019/10/21/021 15:03

**/

public classWatermarkWordUtil {public static voidmain(String[] args) {//这个加水印文字方法可用

try{

Document document= new Document("C:\\Users\\Administrator\\Desktop\\人事合同.docx");

insertWatermarkText(document,"我的水印");//文件输出路径

document.save("C:\\Users\\Administrator\\Desktop\\人事合同1111.docx");

}catch(Exception e) {

e.printStackTrace();

}

}/*** 加水印方法

*

*@paramdoc word文件流

*@paramwatermarkText 水印内容*/

public static voidinsertWatermarkText(Document doc, String watermarkText) {//居中

insertWatermarkText(doc, watermarkText, new Function() {

@OverridepublicObject apply(Shape watermark) {//Place the watermark in the page center.

watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);

watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);

watermark.setWrapType(WrapType.NONE);

watermark.setVerticalAlignment(VerticalAlignment.CENTER);

watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);return null;

}

});//顶部

insertWatermarkText(doc, watermarkText, new Function() {

@OverridepublicObject apply(Shape watermark) {

watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);

watermark.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);

watermark.setWrapType(WrapType.NONE);//我们需要自定义距离顶部的高度

watermark.setVerticalAlignment(VerticalAlignment.TOP);

watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);//watermark.setTop(120);

return null;

}

});//尾部

insertWatermarkText(doc, watermarkText, new Function() {

@OverridepublicObject apply(Shape watermark) {

watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.MARGIN);

watermark.setRelativeVerticalPosition(RelativeVerticalPosition.MARGIN);

watermark.setWrapType(WrapType.NONE);//我们需要自定义距离顶部的高度

watermark.setVerticalAlignment(VerticalAlignment.BOTTOM);

watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);//设置距离顶部的高度//watermark.setTop(480);

return null;

}

});

}private static voidinsertWatermarkText(Document doc, String watermarkText,

FunctionwatermaskPositionConfigFunc) {

Shape watermark= newShape(doc, ShapeType.TEXT_PLAIN_TEXT);

watermark.getTextPath().setText(watermarkText);//这里设置为宋体可以保证在转换为PDF时中文不是乱码.

watermark.getTextPath().setFontFamily("WeiRuanYaHei");//WeiRuanYaHei 宋体

try{//水印大小

watermark.setWidth(150);

watermark.setHeight(30);

}catch(Exception e) {throw newRuntimeException(e);

}//左下到右上

watermark.setRotation(-20);

//字体RGB颜色final String colorStr = "EE8262";

watermark.getFill().setColor(new java.awt.Color(Integer.parseInt(colorStr, 16)));

watermark.setStrokeColor(new java.awt.Color(Integer.parseInt(colorStr, 16)));

watermaskPositionConfigFunc.apply(watermark);

Paragraph watermarkPara= newParagraph(doc);

watermarkPara.appendChild(watermark);for(Section sect : doc.getSections()) {

insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);

}

}private static voidinsertWatermarkIntoHeader(Paragraph watermarkPara, Section sect,intheaderType) {

HeaderFooter header=sect.getHeadersFooters().getByHeaderFooterType(headerType);if (header == null) {

header= newHeaderFooter(sect.getDocument(), headerType);

sect.getHeadersFooters().add(header);

}try{

header.appendChild(watermarkPara.deepClone(true));

}catch(Exception e) {throw newRuntimeException(e);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值