【问题标题】:Get the picture's name which is used as slide background获取用作幻灯片背景的图片名称
【发布时间】:2021-02-22 09:17:21
【问题描述】:

我设置的第二张幻灯片的背景是一张图片。现在我想得到这张照片的这个名字。 我可以使用 WordOpenXML 在 Word 中获取图片的名称。但在 PowerPoint 中我不知道如何使用它。

void picBackground()
{
    if (oPP.Slides[2].Background.Fill.Type==6)//check the background is a picture
    {
    // I want to get the name of this picture
    }
}

对不起,如果我的英语太糟糕了。 感谢您的收看。

【问题讨论】:

  • 我无法为您解答,但我只是想检查一下您是否知道图形文件在嵌入到 Office 文件中时会被重命名为通用名称。因此,如果您尝试获取原始图形名称,那将是行不通的。仅当图形已链接而不是嵌入时,才会保留原始名称。
  • 如果我在 Word 文档中插入图片(名称:abc.jpg)。我可以通过 WordOpenXML 获取这张图片的名称。例如:MessageBox.Show(_activeDoc.Shapes[i].TextFrame.TextRange.WordOpenXML)
  • Word PowerPoint
  • 是的,我知道 Word 是不同的 PP。所以我不知道如何解决我的问题,希望有人能帮助我。
  • 正如 JohnK 已经提到的,除非图像被链接,否则不会保留原始文件名。如果您可以说服用户使用您提供的加载项设置背景图片,则加载项可以存储他们选择的图片文件的路径,并且其他代码可以使用该信息。

标签: c# vba powerpoint openxml office-interop


【解决方案1】:

正如 John 在 cmets 中提到的,当图像/图片被嵌入时,它被赋予了一个通用名称。在 PowerPoint 中就是这种情况,即使使用 OpenXml 也无法获取文件的原始名称。

如果你愿意你可以把pptx文件的扩展名改成zip,看内容,图片在路径ppt/media/imageX.ext比如ppt/media/image1.png就没有其他信息了包中关于图像原始名称的任何位置。

如果您正在创建这些文件,则可以在使用脚本插入图像时在文件中存储额外信息,但无法在常规 PowerPoint 演示文件中获取常规图像的这些信息。

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多