亲爱的具有Office-Automation经验的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 - 您可以复制TextBox,创建新形状并从剪贴板设置其背景,并更改填充透明度(手动)
3 - 您可以复制TextBox,粘贴为图像,保存图像,创建新形状并从文件设置背景,并更改填充透明度(手动)。
我无法创建预先制作的图片,因为水印文字需要是动态的。
我已经尝试了所有三个,并且在每个的某个特定阶段失败了;
( 1 )我不知道如何设置TextBox文字的文字填充格式以使其透明
( 2 )我不知道如何从剪贴板设置形状背景
( 3 )我不知道如何将形状保存为图像
有人能告诉我如何做上述其中一项,或者提供更合适的建议吗?
我很乐意根据要求扩展或重新构建此问题或提供更多代码示例。
最好的问候
答案 0 :(得分:0)
将所选文本设置为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版本中引入的一些新属性,透明度就是其中之一)。