【问题标题】:Creating Dynamic Watermarks for Powerpoint Objects in VB在 VB 中为 Powerpoint 对象创建动态水印
【发布时间】:2013-09-30 11:54:46
【问题描述】:

具有办公自动化经验的 VB 爱好者,

背景: 我正在尝试在 Visual Studio 2010 中使用 VB.Net 为 Office Powerpoint 开发功能区加载项。

问题: 我正在尝试为每张幻灯片上的所有 Powerpoint '对象' 添加带有 动态和透明文本 的水印,然后将它们转换为图像 - 但 我无法制作文字透明。

任务看似简单,但我尝试了多次才考虑咨询!

当前尝试: 假设我编写以下代码以在给定对象上方接收基于文本的基本水印:

NewPresentation.Slides(Slide).Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, Left, Top, Width, Height)

With NewPresentation.Slides(Slide).Shapes(NewPresentation.Slides(Slide).Shapes.Count)

    .TextFrame.TextRange.Text = WatermarkText
    .Line.Visible = MsoTriState.msoFalse

    .Width = Math.Sqrt((Object.Width * Object.Width) + (Object.Height) * Object.Height))
    .Rotation = -(Math.Atan(Object.Height) / (Object.Width) * (180 / System.Math.PI)) ' - Angle * Radius->Degree ratio (Atan returns radius)

    .Left = (Object.Left + (Object.Width / 2)) - (.Width / 2)
    .Top = (Object.Top + (Object.Height) / 2)) - (.Height / 2)

    .Name = "Watermark_" & Group

End With

上面插入一个新的TextBox,设置文本,隐藏行,设置宽度(基于对象大小),旋转文本框(基于对象宽高比),设置左右位置(基于对象位置),并命名形状。

现在我需要做的就是选择文本框和它的对象,复制它们,删除它们,将它们粘贴为图像并重新定位图像形状 - 成功!

ALL完美运行。

但是,如果我想让文本透明怎么办?

我知道实现此目的的三种可能方法:

1 - 您可以格式化 TextBox 文本的文本效果,使其透明(手动)

2 - 您可以复制文本框,创建新形状并从剪贴板设置其背景,以及更改填充透明度(手动)

3 - 您可以复制文本框、粘贴为图像、保存图像、创建新形状并从文件设置背景,以及更改填充透明度(手动)。

我无法创建预制图像,因为水印文本需要是动态的。

我已经尝试了所有三个,并且在每个特定阶段都失败了

(1) 我不知道如何为TextBox的Text设置Text-Fill Format以使其透明

(2) 我不知道如何从剪贴板设置形状背景

(3) 我不知道如何将形状保存为图片

有人能告诉我如何执行上述操作,或者提供更合适的建议吗?

我很乐意根据要求扩展或重新构建此问题或提供更多代码示例。

最好的问候

【问题讨论】:

    标签: vb.net powerpoint transparent watermark office-automation


    【解决方案1】:

    将选定文本设置为 50% 透明绿色的示例:

    Dim oRng As TextRange2
    Set oRng = ActiveWindow.Selection.TextRange2
    
    With oRng
        .Font.Fill.ForeColor.RGB = RGB(0, 255, 0)
        .Font.Fill.Transparency = 0.5    
    End With
    

    请注意,我们使用的是 TextRange2 而不是 TextRange(TextRange2 公开了 2003 年后 PPT 版本中引入的一些新属性,透明度就是其中之一)。

    【讨论】:

    • 啊,这就解释了为什么我找不到 Fill.Transparency 成员!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多