如何将PowerPoint形状导出为高质量的图像文件

时间:2012-10-30 07:23:29

标签: vba graphics powerpoint

我正在尝试生成几百个基本图形,其中形状文本和背景颜色基于文本字符串。

为此我选择使用PowerPoint,因为我觉得图像样式对我的功能来说非常全面。我知道如何做的唯一程序是Adobe Photoshop,但我没有该软件。

我的导出图像功能正常工作,但导出图形的图像质量很差

我怎样才能用更好的图像处理器完成这项工作?

可以看出,我有一个带有文本框的powerpoint幻灯片,用于保存stringvalues(Rectangle 5)和我的“shape”,它将由文本字符串中的两个RGB值设置样式。 字符串值具有以下格式(管道分隔)

  • Textbox 4.Name |圆角矩形7.Color |圆角矩形3.Color

enter image description here

使用的代码:

Private Sub btnProcess_Click()
Dim i As Integer
Dim StringsArray As Variant
Dim StringItems As Variant
    ' Call getlines to break all lines into separate records in stringsarray
    StringsArray = getlines()
    For i = 0 To UBound(StringsArray)
       StringItems = Split(StringsArray(i), "|")
       ActivePresentation.Slides("Slide1").Shapes("TextBox 4").TextFrame.TextRange.Text = StringItems(0)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 7").Fill.ForeColor.RGB = StringItems(1)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 3").Fill.ForeColor.RGB = StringItems(2)
       ActivePresentation.Slides("Slide1").Shapes("Group 6").Export "C:\temp\file.emf", ppShapeFormatEMF, 150, 150, ppRelativeToSlide
    Next i
End Sub

Function getlines() As Variant
Dim mylines As Variant
Dim mytext As String
    mytext = ActivePresentation.Slides("Slide1").Shapes("Rectangle 5").TextFrame.TextRange.Text
    mylines = Split(mytext, vbCr)
    getlines = mylines
End Function

1 个答案:

答案 0 :(得分:1)

PowerPoint幻灯片上显示的基于矢量图形的PPT对象不受比例影响,因此在所有缩放级别,对象不会显示失真。

我找不到将对象图形输出为真正的图元文件的方法,即使ppShapeFormatEMF格式也不会生成基于矢量的EMF,只是一个更大的图像。

我最后的最佳解决方案是增加PPT对象的基本大小并使用ppShapeFormatPNG格式导出形状对象,从而提高图像的细节级别。

有点明显。

enter image description here