3

我看到很多关于如何将整个幻灯片从 powerpoint 演示文稿导出为图像的提示和技巧,但这不是我的任务。相反,我正在尝试转换各个幻灯片中的所有“非开放格式”图像类型,并将它们(就地)替换为友好的等价物。这主要是由于 Google Docs 不了解 .emf 和 .wmf 格式(为什么?那么开源软件实际上确实支持它?)并且因为手动将图形导出为图像文件并将其重新插入到演示文稿中是一个非常复杂的过程,我想知道是否有人找到了这样做的好方法。

因此,总结:将 powerpoint 演示文稿中的 emf 和 wmf 文件升级为 png 或 jpg 格式。作为附注,我可以将这些文件作为 zip 文件打开,并查看有问题的文件只是在 \ppt\media 中,但只需替换文件会导致 Powerpoint 只是删除以前引用的图像文件并抱怨可能是错误的。

4

1 回答 1

1

对于每个“不友好”的图片,将其复制并粘贴为 PNG(或 JPG 或任何您想要的),然后删除原始图片。

简单的例子:

Sub ConvertShapeToPNG()
    Dim oSh As Shape
    Set oSh = ActiveWindow.Selection.ShapeRange(1)
    oSh.Copy
    ActiveWindow.Selection.SlideRange.Shapes.PasteSpecial ppPastePNG
    oSh.Delete
End Sub

在实践中,假设您想要集体执行此操作而不是一次手动执行一个,您需要一种方法来确定图片是否“友好”(实际上它是否是图片)。

您可以首先检查 oSh.Type = msoPicture (或其他几种可能的类型之一)。如果是图片,它已经是光栅格式还是“不友好”的格式?尝试取消组合形状的副本。如果尝试抛出错误,则它已经是光栅;如果没有错误,删除生成的未分组形状/shaperange 和原始形状的副本。

复制/粘贴为 PNG/etc 后,您需要获取原始形状的 x/y 位置,将其应用于新的 PNG 形状,并可能将新形状移动到原始形状的 z 顺序。

于 2012-07-26T14:20:34.310 回答