VSTO中给单独的某一页设置水印

问题描述:
如何在VSTO word 中,给单独的某一页设置水印文字?

问题简析:

水印文字可以看作是一个艺术字,所以给单独的某一页设置水印的话,可以通过设置艺术字的方式来达成此效果。

当然,水印和艺术字还是有不同的,如果给全文设置水印的话,水印是和页眉页脚同级的,但是给单个页面设置水印的话,根据观察,和艺术字的效果是同样的。可能有些地方我没理解到,有大佬知道的话可以帮忙指正。

 

代码

 1 using Microsoft.Office.Core;
 2 using Microsoft.Office.Interop.Word;
 3 using Microsoft.Office.Tools.Ribbon;
 4 
 5 private void button1_Click(object sender, RibbonControlEventArgs e)
 6 {
 7     object Nothing = System.Reflection.Missing.Value;
 8 
 9     // 找到当前应用程序,即word
10     var WordApp = Globals.ThisAddIn.Application;
11 
12     // 找到当前的活动文档
13     Document WordDoc = WordApp.ActiveDocument;
14 
15     // 移动到要添加水印的那一页,此处设置为第六页
16     WordApp.Selection.GoTo(WdGoToItem.wdGoToPage, WdGoToDirection.wdGoToAbsolute, 6);
17 
18     // 添加水印
19     Microsoft.Office.Interop.Word.Shape shape = WordDoc.Shapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect1, "这是水印", "宋体", 16f, MsoTriState.msoCTrue, MsoTriState.msoCTrue, 300, 300, ref Nothing);
20 
21     shape.Name = "Ksbb" + shape.Name;
22 
23     // 设置角度
24     shape.IncrementRotation(0f);
25 
26     // 设置颜色
27     shape.Fill.ForeColor.RGB = 111111;
28 
29     // 透明度
30     shape.Fill.Transparency = 0.5f;
31 }

 

效果:

 

备注:

 关于设置水印的方法,可以在微软官方文档中查阅到:Shapes.AddTextEffect 方法 (Microsoft.Office.Interop.Word) | Microsoft Learn

VSTO才开始学习,好多东西都不知道,而且要学习的内容也非常多,内容真的很多。。。

posted @ 2024-05-24 18:38  岁城丶  阅读(84)  评论(0)    收藏  举报