2

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

为此我选择使用 PowerPoint,因为我觉得图像样式对于我的功能来说非常全面。我知道如何做到这一点的唯一程序是 Adob​​e Photoshop,但是我没有那个软件。

我可以使用导出图像功能,但是导出图形的图像质量很差

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

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

  • 文本框 4.名称 | 圆角矩形 7.Color | 圆角矩形 3.Color

在此处输入图像描述

使用的代码:

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
4

1 回答 1

1

在 PowerPoint 幻灯片上看到的基于矢量图形的 PPT 对象不受比例影响,因此在所有缩放级别上,对象都不会出现扭曲。

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

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

有点明显。

在此处输入图像描述

于 2012-11-01T06:22:11.703 回答