aspose对word插入一个或多个水印
package com.*.utils; import com.aspose.words.*; import com.aspose.words.Shape; import java.awt.*; /** * 插入一个水印和多个水印 */ public class WordWatermarkUtil { /** * 插入一个水印摆放正中间 * @param watermarkText 水印内容 * @param doc Document对象 */ public static void insertWatermarkText(Document doc, String watermarkText) { Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); watermark.getTextPath().setText(watermarkText);//水印内容 watermark.getTextPath().setFontFamily("宋体"); try { //具体字体内容大小进行自定义设置 watermark.setWidth(500);//水印宽度 watermark.setHeight(100);//水印高度 } catch (Exception e) { e.printStackTrace(); } watermark.setRotation(-40);//旋转水印 watermark.getFill().setColor(Color.lightGray); //填充颜色(没有填充颜色字会变成空心的) watermark.setStrokeColor(Color.lightGray);//水印颜色 浅灰色 watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);//设置相对水平位置 watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);//设置相对垂直位置 watermark.setWrapType(WrapType.NONE);//设置包装类型 watermark.setVerticalAlignment(VerticalAlignment.CENTER);//设置垂直对齐 watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);//设置文本水平对齐 Paragraph watermarkPara = new Paragraph(doc); watermarkPara.appendChild(watermark); for (Section sect : doc.getSections()) { insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY); insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST); insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN); } } /** * 插入多个水印 * @param watermarkText 水印内容 * @param doc Document对象 */ public static void insertMoreWatermarkText(Document doc, String watermarkText) { Paragraph watermarkPara = new Paragraph(doc); //循环添加水印,这里横纵都在一条水平线,不太好看,可以对i和j控制使之有适当位移 for (int j = -30; j < 700; j = j + 200) { for (int i = 50; i < 500; i = i + 100) { Shape waterShape = ShapeMore(doc, watermarkText, j, i); watermarkPara.appendChild(waterShape); } } for (Section sect : doc.getSections()) { insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY); insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST); insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN); } } /** * @param doc 操作的文档对象 * @param watermarkText 水印内容 * @param left 距离左边的距离 * @param top 距离顶部的距离 * @return */ public static Shape ShapeMore(Document doc, String watermarkText, double left, double top){ Shape waterShape = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); //水印内容 waterShape.getTextPath().setText(watermarkText); //水印字体 waterShape.getTextPath().setFontFamily("楷体"); try { //具体字体内容大小进行自定义设置 waterShape.setWidth(136);//水印宽度 waterShape.setHeight(18);//水印高度 } catch (Exception e) { e.printStackTrace(); } //旋转水印 waterShape.setRotation(-40); //填充颜色(没有填充颜色字会变成空心的) waterShape.getFill().setColor(new Color(217,217,217)); //水印颜色 浅灰色 waterShape.setStrokeColor(new Color(217,217,217)); //将水印放置在页面中心 waterShape.setLeft(left); waterShape.setTop(top); //设置包装类型 waterShape.setWrapType(WrapType.NONE); return waterShape; } /** * 插入水印 * @param watermarkPara 水印段落 * @param sect 部件 * @param headerType 头标类型字段 */ private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) { HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); if (header == null) { header = new HeaderFooter(sect.getDocument(), headerType); sect.getHeadersFooters().add(header); } header.appendChild(watermarkPara.deepClone(true)); } }