-
Office Word 2007可以添加自定义的水印到水印库中
2008-10-26 02:43:00一年前我安装了Word 2007,一直想知道能不能通过一些很小的改变加快某些任务的处理速度。...菜单中有些预设好的水印,但是“副本”字样并不包括在内,所以我还得选择“自定义水印”|“文字水印”,一年前我安装了Word 2007,一直想知道能不能通过一些很小的改变加快某些任务的处理速度。具体说来,我在用Word写信件时常常要用到水印功能,比如在给联系人发送信件的拷贝时用沿对角线方向排列的“副本”字样的水印作为提示。
要实现这个效果我得在“页面布局”标签中单击“水印”打开下拉菜单;菜单中有些预设好的水印,但是“副本”字样并不包括在内,所以我还得选择“自定义水印”|“文字水印”,然后输入文字内容,再设置为斜式版式。
在整个过程中我不能选中刚插入的水印,而且“水印”菜单中的“将选中内容保存到水印库”项也一直是灰色的,没法点击。有没有什么操作能将“副本”保存为预设水印,这样一打开水印的下拉菜单我就能直接选择它,省去后面的麻烦。当然可以。首先,创建自定义水印,然后切换到“插入”栏打开“页眉”下拉菜单,选择“编辑页眉”;这时你会发现已经能单击选中刚刚编辑的水印了,之后只要切换回“页面布局”栏,打开“水印”下拉菜单,然后单击“将所选内容保存到水印库”就能将自定义的水印安置到“水印”菜单里了。
原作品网址:http://www.oldcp.com/Information/ArticleShow.asp?ArticleID=10314
-
Java实现在线word文档添加铺满效果文字水印,文字可换行
2020-08-19 12:49:41Java实现在线word文档添加铺满效果文字水印,文字可换行使用插件Aspose.words for java生成水印的工具类调用生成水印方法 需求:为在线预览的word文档添加自定义水印,还要铺满效果,文字太多还要能换行 使用插件...Java实现在线word文档添加铺满效果文字水印,文字可换行
需求:为在线预览的word文档添加自定义水印,还要铺满效果,文字太多还要能换行使用插件Aspose.words for java
一个jar包,官网下载或者复制相应的dependency语句即可,专门处理开发过程中的word文档的工具,功能挺强大,但是需要先破解,破解的关键就是把注册license的源码给删了,网上破解教程不多,且都大同小异,反正我是破解成功了,你们也可以的!
最后把破解完的jar包通过适合你自己的方式导入到依赖里即可
(为什么说适合你的方式呢?因为我无法直接在pom文件里导入官网的dependency,公司有限制,只能导入公司仓库里已有的版本…)生成水印的工具类
想实现文字水印换行需要在调用工具类方法时在水印文本中加"\n"换行符,然后修改下面这个生成文字形状的方法,调整水印的宽高,换行后宽度变小,高度变大。
watermark.setHeight(WATERMARK_FONT_HEIGHT*3); //WATERMARK_FONT_HEIGHT是一行文字的高度,我水印分了三行,所以最终水印高度 * 3,如果还不满意,也可以改WATERMARK_FONT_HEIGHT/** * 构建文字shape类 * * @param doc 文档对象 * @param watermarkText 水印文字 * @param left 左边距 * @param top 上边距 * @throws Exception */ private static Shape buildTextShape(Document doc, String watermarkText, double left, double top) throws Exception { Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); watermark.getTextPath().setText(watermarkText); watermark.getTextPath().setFontFamily("宋体"); watermark.setWidth(watermarkText.length() * (double)WATERMARK_FONT_WIDTH); watermark.setHeight(WATERMARK_FONT_HEIGHT*3); //WATERMARK_FONT_HEIGHT是一行文字的高度,我水印分了三行,所以最终水印高度*3 watermark.setRotation(WATERMARK_FONT_ROTATION); //绘制水印颜色 watermark.getFill().setColor(watermark_color); watermark.setStrokeColor(watermark_color); //将水印放置在页面中心 watermark.setLeft(left); watermark.setTop(top); watermark.setWrapType(WrapType.NONE); return watermark; }
完整工具类,包括文字和图片水印的生成
import com.aspose.words.*; import com.aspose.words.Shape; import org.apache.commons.lang3.StringUtils; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.util.Random; /** * 水印工具类 */ public class WatermarkUtils { /** * 水印每个字体的宽度为10 */ private final static int WATERMARK_FONT_WIDTH = 5; /** * 水印每个字体的高度为16 */ private final static int WATERMARK_FONT_HEIGHT = 14; /** * 水印图片的默认高度为20 */ private final static double WATERMARK_IMG_HEIGHT = 20d; /** * 水印倾斜角度 默认是50 为保证文字连续性尽量不要修改 */ private final static int WATERMARK_FONT_ROTATION = 50; /** * 水印字体颜色 */ private static Color watermark_color = new Color(217, 226, 243); /** * word文档插入图片水印 * * @param doc 文档对象 * @param imgPath 图片路径 * @throws Exception */ public static void insertWatermarkImg(Document doc, String imgPath) throws Exception { if (StringUtils.isBlank(imgPath)) { System.out.println("没有配置水印图片, 无法为文档加入水印"); return; } Paragraph watermarkPara = new Paragraph(doc); // TODO 这里的数据 计算水印个数(900 150 700 150) 首个水印位置(-200至-100)都是实验得到 没有理论依据 for (int top = 0; top < 900; top += 150) { int beginLeft = new Random().ints(-100, -50).limit(1).findFirst().getAsInt(); for (int left = beginLeft; left < 700; left += 150) { Shape waterShape = buildImgShape(doc, imgPath, left, top); 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); } } /** * 构建图片shape类 * * @param doc 文档对象 * @param imgPath 图片文件路径 * @param left 左边距 * @param top 上边距 */ private static Shape buildImgShape(Document doc, String imgPath, int left, int top) { Shape shape = new Shape(doc, ShapeType.IMAGE); try { // File imgFile = new File(imgPath); // BufferedImage sourceImg = ImageIO.read(new FileInputStream(imgFile)); BufferedImage sourceImg = ImageIO.read(new WatermarkUtils().getClass().getResourceAsStream(imgPath)); double multiple = sourceImg.getHeight() / WATERMARK_IMG_HEIGHT; // shape.setWidth(sourceImg.getWidth() / multiple); // System.out.println(sourceImg.getWidth() / multiple); // shape.setHeight(WATERMARK_IMG_HEIGHT); shape.getImageData().setImage(sourceImg); shape.setWidth(50); shape.setHeight(20); shape.setRotation(WATERMARK_FONT_ROTATION); shape.setLeft(left); shape.setTop(top); shape.setWrapType(WrapType.NONE); } catch (Exception e) { throw new RuntimeException("图片附件丢失, 无法生成水印!", e); } return shape; } /** * 为word文档插入文本水印 * * @param doc 文档对象 * @param watermarkText 文本内容 * @throws Exception */ public static void insertWatermarkText(Document doc, String watermarkText) throws Exception { if (StringUtils.isBlank(watermarkText)) { System.out.println("没有配置水印内容, 无法为文档加入水印"); return; } Paragraph watermarkPara = new Paragraph(doc); // TODO 这里的数据 计算水印个数(900 150 700 150) 首个水印位置(-200至-100)都是实验得到 没有理论依据 for (int top = 0; top < 900; top += 300) { int beginLeft = new Random().ints(-400, -200).limit(1).findFirst().getAsInt(); for (int left = beginLeft; left < 700; left += 300) { // 如果是左起第一个水印则通过字符串截取达到随机显示水印的目的 // 这样做的原因为了保证倾斜的行保证对齐 又能表现随机的特性 不是好办法 if (left == beginLeft) { int splitNo = new Random().ints(0, watermarkText.length()).limit(1).findFirst().getAsInt(); String firstWater = watermarkText.substring(splitNo) + " ".substring(0, splitNo); Shape waterShape = buildTextShape(doc, firstWater, left, top); watermarkPara.appendChild(waterShape); } else { Shape waterShape = buildTextShape(doc, watermarkText, left, top); 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); } } /** * 构建文字shape类 * * @param doc 文档对象 * @param watermarkText 水印文字 * @param left 左边距 * @param top 上边距 * @throws Exception */ private static Shape buildTextShape(Document doc, String watermarkText, double left, double top) throws Exception { Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); watermark.getTextPath().setText(watermarkText); watermark.getTextPath().setFontFamily("宋体"); watermark.setWidth(watermarkText.length() * (double)WATERMARK_FONT_WIDTH); watermark.setHeight(WATERMARK_FONT_HEIGHT*3); watermark.setRotation(WATERMARK_FONT_ROTATION); //绘制水印颜色 watermark.getFill().setColor(watermark_color); watermark.setStrokeColor(watermark_color); //将水印放置在页面中心 watermark.setLeft(left); watermark.setTop(top); watermark.setWrapType(WrapType.NONE); return watermark; } /** * 插入水印 * * @param watermarkPara 水印段落 * @param sect 部件 * @param headerType 头标类型字段 * @throws Exception */ private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception { HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); if (header == null) { header = new HeaderFooter(sect.getDocument(), headerType); sect.getHeadersFooters().add(header); } header.appendChild(watermarkPara.deepClone(true)); } }
调用生成水印方法
在生成在线文档的方法中调用生成水印的方法
//aspose.words加水印,破解后想用,需要先获取license if(!getLicense()) { throw new Exception("com.aspose.words lic ERROR!"); } Document document = new Document(路径"temp.docx"); WatermarkUtils.insertWatermarkText(document, txt); //调用工具类方法,txt是水印文字 document.protect(ProtectionType.READ_ONLY); //设置只读,其实我用着没效果 document.save(路径"temp.docx"); //最后必须保存 /** * 获取license * * @return */ public static boolean getLicense() { boolean result = false; try { InputStream license = Rmbdyyl.class.getClassLoader().getResourceAsStream("license.xml");// license路径 License aposeLic = new License(); aposeLic.setLicense(license); result = true; } catch (Exception e) { e.printStackTrace(); } return result; }
涉及公司机密,效果图就不放了
-
Word文档水印批量设置工具 v2.01官方版
2020-12-23 19:35:28基本简介 本款word文档水印设置工具的操作非常简单,用户只需要选择需要处理的文件,然后根据需求选择水印处理操作就ok了~用户可以自定义文字水印或图片水印,而且可以设置水印的字体、颜色、尺寸等信息。 Word... -
java添加word水印_word文档添加水印背景
2020-12-10 23:48:561、点【设计】下的【水印】,2016版本的word在右侧,各位,向右看齐2、点水印下的倒三角按钮后,可以看到有“机密”、"紧急"等预设好的水印文字,我们不要这个,点下看,点下面的【自定义水印】...加水印不止是为了好看,更重要的有防伪或者声明的作用,比如在合同或公司文件上加上公司标志水印等,也有很多不愿意去这么做,我们公司的产品型式检验报告的材料上,都有相关的水印,这也是为了防止做假的材料而设置的吧。
1、点【设计】下的【水印】,2016版本的word在右侧,各位,向右看齐
2、点水印下的倒三角按钮后,可以看到有“机密”、"紧急"等预设好的水印文字,我们不要这个,点下看,点下面的【自定义水印】
3、在弹出的【自定义水印】窗口中,有图片水印和文字水印,根据需要选择使用水印即可,我们以文字水印来设置一下。
4、我简单的设置了几个水印文字“李兆香爱你们”,字体改为习字体,颜色改成黄色并设置成了透明,版式一般情况下选择“斜式”的较多,因为水印用斜着的方式显示好看,另外水印的面积会比水平方式的大些。
5、最后还是放上一张我设置完毕的效果图吧
-
【word】添加水印
2020-01-24 18:43:311、设计->...2、文字水印自定义 #include<iostream> using namespace std; int s1,s2,s3; bool flag = 1; int main() { freopen("1.txt","r",stdin); freopen("2.txt","w",stdout); i...1、设计->页面背景->水印->自定义水印
2、文字水印自定义
#include<iostream> using namespace std; int s1,s2,s3; bool flag = 1; int main() { freopen("1.txt","r",stdin); freopen("2.txt","w",stdout); int k;cin >> k; for(int i = 10000;i <= 30000;i++) { s1 = i / 100; s3 = i % 1000; s2 = (i/10)%1000; if(s1%k==0&&s2%k==0&&s3%k==0) { cout << i <<endl; flag = 0; } } if(flag) cout << "NO" ;//实在没想到是因为No打成了NO,太粗心了 }
-
word加多行水印_职场干货|分享40个Word实用技巧
2020-12-05 04:20:2402、快速自定义水印在Word菜单区域中点击“设计” 选项,在功能区右侧点击“水印” ,下拉选项中预置了很多水印格式,大家可根据需要自定义水印并设置。03、快速设置跨页表格标题行鼠标点击文档表格第一个标题行任意... -
动态文字水印怎么做
2019-12-29 22:59:26水印是把一些标识信息嵌入到信息载体中,在不影响原载体内容使用的同时,为原作者提供识别的手段,进而...像 Word 中增加水印很简单:菜单栏“设计”-“水印”(选择“自定义水印”),可以设置图片或文字类水印。 ... -
jsp点击文字改变颜色_动态文字水印怎么做
2021-01-09 10:49:09水印是把一些标识信息嵌入到信息载体中,在不影响原载体内容使用的同时,为原作者提供识别的...像 Word 中增加水印很简单:菜单栏“设计”-“水印”(选择“自定义水印”),可以设置图片或文字类水印。但同一个 ... -
Word 加水印
2019-12-15 22:27:50自定义水印 2.文字栏 输入想要标识的水印 3.附上文档内容-数学竞赛题 已知整数x,y,满足x+y+2xy=83,求解x+y的值? 解: x+y+2xy=83 2x+2y+4xy=166 2x+2y+4xy+1= (2x+1) (2y+1) = 167 且由于x,y均为整数,且... -
用Word 2003给文档添加文字和图片水印
2010-06-06 17:06:00添加文字水印 <br /> 制作好文档后,在“格式”菜单下“背景”中选择“水印”选项,选择“文字水印”,在“文字”菜单中选择水印的文字内容,也可自定义水印文字内容。设置好水印文字的字体、尺寸、颜色、透明... -
水印铺满_如何用极速写作给Word文档添加不同的水印?
2021-01-12 13:58:27在日常工作中有时为了防止文档被盗用,我们经常会给Word文档添加各种不同...2、自定义文字水印用极速写作打开Word文档后,点击工具栏“设计”选择“水印”,下拉菜单中选择“自定义水印”,在“水印”弹窗中勾选“文... -
jsp点击文字改变颜色_报表工具中动态文字水印怎么做
2021-01-09 10:49:11水印是把一些标识信息嵌入到信息载体中,在不影响原载体内容使用的同时,为原作者提供识别的...像 Word 中增加水印很简单:菜单栏“设计”-“水印”(选择“自定义水印”),可以设置图片或文字类水印。但同一个 ... -
layui动态添加输入框_动态文字水印怎么做
2020-11-29 02:12:25水印是把一些标识信息嵌入到信息载体中,在不影响原载体内容使用的同时,为原作者提供识别的...像 Word 中增加水印很简单:菜单栏“设计”-“水印”(选择“自定义水印”),可以设置图片或文字类水印。但同一个 ... -
WORD文档水印批量设置工具1.65(DocWatermark)最新版.rar
2019-09-05 04:05:17WORD文档水印批量设置工具可以批量给WORD文档批量添加图片水印与文字水印,水印效果可以自定义设置,文字水印可设置文字内容、文字所使用的字体、尺寸及颜色。无水印模式清除原有填充效果,也可清除文档所有艺术字... -
在Word中添加打印水印
2012-09-05 07:58:45在打印一些重要文件时给文档加上水印,例如“绝密”、“保密”的...制作好文档后,在“格式”菜单下“背景”中选择“水印”选项,选择“文字水印”,在“文字”菜单中选择水印的文字内容,也可自定义水印文字内容。设计 -
Word中制作和去掉水印的方法
2015-03-23 11:54:48水印是指打印时显示在已存在的文档文字中的任何背景文字或图形,可以让...添加文字水印(例如“绝密”、“保密”的字样) 在“格式”菜单下→“背景”→“水印”→“文字水印”,选择水印的文字内容或自定义水印文字内 -
Word基础(十三)添加水印
2019-01-06 23:19:10在打开的水印对话框中点击文字水印(X),填写相应的设置即可 在Word中,当前页面文本较少,添加的水印虽然相对于页面居中,但是相对于当前页面的文本确是偏下的,怎么才能够更改水印的位置呢? 方法: 双击页眉上方... -
ASP.NET中对Word添加水印效果!!
2009-04-13 13:13:00用到了ImageWaterMark.dll 虽然不添加这个也能实现水印,但是本人到目前为止还没有解决自定义水印文字的方法,所以引用了ImageWaterMark.dll 部分参考代码如下: 1.生成水印图片 public void CreateWaterMarkImg... -
关于水印
2019-10-18 12:03:39在Word里面 设计---水印 有各种水印模板,也可以自定义水印。 自定义水印可以设置文字,颜色,字体。 如果水印被文字遮盖,看不见那一定是边框和底纹的设计出了问题,我们可以在设计---页面边框设置,注意边框... -
python pdf 加水印_Python实现给PDF添加水印的方法
2021-01-28 17:59:19前言本文针对 仅有 PDF 文件,而无相关 PDF 编辑器的情况下,给 PDF 添加水印。...实现步骤: 新建 watermark.word ,【设计】 → \to → 【水印】【自定义水印】 → \to → 【文字水印】输入【...
-
辅助驾驶的哈密顿量对绝热演化是否总是有用?
-
射影级双缝光子晶体光机腔设计
-
JavaWeb之过滤器与监听器
-
程序员必修基础套餐课
-
阿里集团八年容器化演进之路
-
CentOS7 安装redis6
-
Anaconda和spyder打不开
-
ASP.NET学习——用户增删改查(三层,数据库+源码)
-
2013年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
安卓数据库案例
-
ELF视频教程
-
C++代码规范和Doxygen根据注释自动生成手册
-
SecureCRT 连接 GNS3/Linux 的安全精密工具
-
龙芯实训平台应用实战(希云)
-
APPKIT打造稳定、灵活、高效的运营配置平台
-
2019年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
【硬核】一线Python程序员实战经验分享(1)
-
Linux — “linux关机重启命令(CentOS版)”
-
用于文档聚类的半监督概念分解
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)