问题标签 [presentationml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
97 浏览

c# - 在 Office 2013 中修复消息,但在其他版本中打开正常

我使用 OpenXML SDK 2.0 生成了一个演示文稿,该演示文稿在 Office 2007 或 2010 中可以正常打开,但在 Office 2013 中提供了修复消息,OpenXML SDK 生产力工具验证功能没有提供太多帮助。谁能告诉我有什么问题?演示文稿可从以下网址下载:

https://skydrive.live.com/redir?resid=C4B0274BA6703509!300

0 投票
1 回答
931 浏览

openxml - OpenXML - PresentationML 克隆 - 损坏的 Powerpoint

我需要将演示文稿中的所有幻灯片克隆为基本演示文稿,并将克隆幻灯片的布局更改为基本演示文稿的布局。

我采取的方法是,

(基本表示表示为 B,要克隆的表示表示为 C)

将C的每张幻灯片的幻灯片部分复制到B中。

将 B 的 master 复制到 C

删除 B 中新添加的幻灯片部分的现有布局部分(从 C 中克隆的幻灯片)。

将所需的布局部分从 B 添加到新添加的幻灯片部分。

遍历 LayoutId 并重新排序它们以包含唯一值。

结果表示是损坏的输出。

基地介绍: 基地介绍

克隆演示: 克隆演示文稿

错误信息: 错误信息

结果输出: 结果输出

第一张幻灯片已损坏

我还尝试了 openxmldeveloper中提到的演示文稿生成器

给定片段的选项 2 与我想要实现的有点相似。但是结果输出是一样的。

可以从此处下载包含我要克隆的文件的演示文稿生成器项目

在这里,我们尝试将两个演示文稿文档克隆到一个新的演示文稿文档(从头开始构建),但对所有幻灯片使用第一个克隆演示文稿(基本演示文稿)的母版和布局。

文件:Company.pptx(基本演示)、Customer Content.pptx(克隆演示)、Out2.pptx(生成演示)

0 投票
0 回答
483 浏览

c#-4.0 - OpenXML - PresentationML - newMasterPart.SlideMaster.Preserve = false,不工作

我正在尝试使用幻灯片母版的保留属性,以清除未引用的幻灯片母版。

我的目标是将演示文稿中的所有幻灯片(只有一张幻灯片)克隆到基本演示文稿(只有一张幻灯片),并将克隆幻灯片的布局更改为基本演示文稿的布局。

我采取的方法是,

(基本表示表示为 B,要克隆的表示表示为 C)

将 C 的幻灯片的幻灯片部分复制到 B 中。

将 C 的 master 复制到 B 中。

在新复制的母版中将 SlideMaster.Preserve 属性设置为 false。

删除 B 中新添加的幻灯片部分的现有布局部分(从 C 中克隆的幻灯片)。

将所需的布局部分从 B 添加到新添加的幻灯片部分。

遍历 LayoutId 并重新排序它们以包含唯一值。

但是当我打开生成的文件时,虽然没有引用从 C 复制的 MasterSlide。它仍然存在。

注意:虽然我在相同的代码片段中更改了布局幻灯片,但实际上它将在不同的执行路径上执行,因此不应对 C 的 MasterSlides 不是一种选择。

基础介绍 (B) 在此处输入图像描述

基地主幻灯片 在此处输入图像描述

克隆演示文稿 (C) 在此处输入图像描述

克隆演示文稿的主幻灯片 在此处输入图像描述

结果输出 在此处输入图像描述

输出母版幻灯片 在此处输入图像描述

虽然没有对第二张母版幻灯片的引用,但即使将保留属性设置为 false,它仍然占上风。

可以从Post2.zip 下载代码示例

Post2中的文件:

BaseSlide.pptx (basepresentation)

ToBeCloned.pptx(克隆演示文稿)

Out2.pptx(生成的演示文稿)

任何帮助是极大的赞赏。谢谢。

0 投票
1 回答
1647 浏览

c# - 使用 OpenXML SDK 在 C# 中生成 PowerPoint 文件;验证,但打开时出现错误

我最近开始深入研究 OpenXML SDK,希望能够自动生成 PowerPoint 演示文稿。我发现整个过程很痛苦,并且在周末和最后两天的大部分时间里都在生成一个库来处理原始 SDK 调用。在生成过程中一切似乎都运行良好,我可以在 Open XML SDK Productivity Tool 中验证代码是否正确。但是,在 PowerPoint 中打开文件会导致出现一个对话框,要求我在打开文件之前修复它。

所有这些代码都是从我在 PowerPoint 中创建的文件中反映的内容中重构的。在生产力工具中对这些包运行差异,我发现我的幻灯片布局(第一个除外)/ppt/slideLayouts/slideLayouts//ppt/slideLayouts/. 我已经三重检查了我的生成代码,它将 SlideLayout 添加到.PresentationPart而不是SlideLayoutPart. 这特别奇怪,因为第一个布局位于正确的位置,而后面的布局则没有。

我通读了 MSDN 文档和 Wouter van Vugt 的 Open XML 电子书。我已经将我的代码与反映的代码进行了比较,它对我来说似乎是正确的(尽管考虑到我对 Open XML 的了解以及 PresentationML 的复杂性,我可能会遗漏很多东西)。有人对这里可能发生的事情有任何见解吗?

0 投票
1 回答
422 浏览

openxml - Openxml:添加的 ImagePart 未显示在 Powerpoint 中/缺少 RelationshipID

我正在尝试动态创建 PowerPoint 演示文稿。一张幻灯片有一堆占位符图像,需要根据某些值进行更改。我的方法是创建一个新的 ImagePart 并将其链接到相应的 Blip。图像被下载并存储到演示文稿中就好了。问题是,在 slide.xml.rels 文件中没有为图像创建关系,这会导致有关幻灯片上缺少图像和空框的警告。任何想法我做错了什么?

在此先感谢您的帮助!最良好的祝愿

0 投票
1 回答
1945 浏览

powerpoint - OpenXML-为演示文稿中的幻灯片设置幻灯片布局

这是我用来创建演示文稿的代码。

我在这里尝试的是创建一张幻灯片并将形状插入其中并将幻灯片附加到已创建的演示文稿中。这很好用。

我的问题是我如何设置插入幻灯片的布局。我的意思是幻灯片布局

我想将此布局设置为我的幻灯片。

我曾在此处使用幻灯片布局

0 投票
1 回答
152 浏览

c# - 将 SlideMasters 和 SlideLayouts 添加到演示文稿

我正在尝试使用六张幻灯片、三张主幻灯片(MS-A、MS-B 和 MS-C)和两张幻灯片布局(SL-1 和 SL-2)创建一个演示文稿。将六张幻灯片想象成两行三列的幻灯片。

我想使用引用幻灯片布局 1 的 SlideMaster 创建幻灯片的第一“行”。例如,将使用引用 SL-1 的 Master MS-A 创建幻灯片 1 (S1A)。带有参考 SL-1 的 MS-B 的幻灯片 2 (S1B),以及带有参考 SL-1 的 MS-C 的幻灯片 (S1C)。

到目前为止,这应该不是真正的问题。但是,我想知道是否可以使用 Master Slides MS-A 到 MS-C 构建幻灯片的第二“行”(S2A、S2B 和 S2C),它们引用幻灯片布局 SC-2,并且不影响第一行幻灯片的内容

如果这是可能的,你能给我提供我将如何去做的链接/示例/伪代码吗?

我正在使用 OpenXML 2.5、C#、框架 4.5。

0 投票
1 回答
933 浏览

c# - 如何在 OpenXML/PresentationML/C# 中的 PowerPoint (PPTX) 中插入换行符

虽然 Word 和 PowerPoint 都使用 OpenXML,但换行符的处理方式不同。在 Word/WordprocessingML 中,您可以run.Append(new Break())(参见此处)插入换行符。不幸的是,在 PresentationML 中,这会导致演示文稿无效,并且在 PowerPoint 中加载演示文稿时会出错。

如何在TextBodyPowerPoint中添加换行符Shape

0 投票
1 回答
1769 浏览

c# - 在 OpenXML (PresentationML) PowerPoint (PPTX) 中计算文本 (TextBody) 的大小 (Extents)

我想用来自数据库的数据创建一个演示文稿。我设法获得在 PowerPoint 中打开的有效演示文稿(SDK 2.5 的Open XML Productivity Tool对执行此操作有很大帮助)。但是,如何计算文本框形状的大小?我看到将值放在哪里,但new Extents()默认为零宽度和高度。当我Shape从现有演示文稿中获取 a 的某些值时,我可能会得到正确的高度(至少对于具有一行或固定行数的文本),但文本将溢出到右侧或底部(取决于自动换行环境)。

同样插入NormalAutoFit的也无济于事 - OpenXML 中没有计算BodyProperties和计算的必要值。TextBodyFontScaleLineSpaceReduction

Extents那么,将 a 设置为 a的最佳做法是Shape什么TextBody

有没有一种内置的方法来计算Extents给定的TextBodyor Shape?(一些带有内置方法的经验法则总比没有好)

我知道 PowerPoint 会NormalAutoFit在进行任何更改之后重新计算值(至少对于更改前后的一堆幻灯片),但是在进行更改之前开始演示文稿时(或者如果它是从 PowerPoint 查看器开始)。

0 投票
1 回答
813 浏览

c# - 如何通过openxml获取形状中文本的字体大小?

我正在尝试通过 openXML 检查 powerpoint 演示文稿中形状文本的大小,但我不确定如何获取它,因为它是一个 RunProperty。

有人知道如何得到它吗?我已经知道如何获取字体和字体的颜色,我可以这样做吗?