Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 了解情况';s用作幻灯片背景的名称_C#_Vba_Powerpoint_Openxml_Office Interop - Fatal编程技术网

C# 了解情况';s用作幻灯片背景的名称

C# 了解情况';s用作幻灯片背景的名称,c#,vba,powerpoint,openxml,office-interop,C#,Vba,Powerpoint,Openxml,Office Interop,我设置的第二张幻灯片的背景是一张图片。现在我想知道这张照片的名字。 我可以使用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 }

我设置的第二张幻灯片的背景是一张图片。现在我想知道这张照片的名字。 我可以使用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
    }
}
对不起,如果我的英语太差了。
感谢您的收看。

正如John在评论中提到的,嵌入图像/图片时,会给它起一个通用名称。在PowerPoint中,就是这样,即使使用OpenXml,也无法获取文件的原始名称

如果需要,您可以将
pptx
文件的扩展名更改为
zip
,并查看内容,图片将位于路径
ppt/media/imageX.ext
中,例如
ppt/media/image1.png
,并且包中不会有关于图像原始名称的其他信息


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

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