【发布时间】:2015-02-07 03:00:32
【问题描述】:
(更新:自我回答,如下)
使用 VS2013 高级版,asp.net。 vb.net, 网站, win7
使用 OpenXML SDK 和 OpenXML 生产力工具
我有一个类对象字典,它按位置和文本内容描述图形形状(矩形、箭头、文本框)。我使用类对象在空白的 PowerPoint 演示文稿中创建形状。形状以正确的文本显示在正确的位置。但是,我不知道如何更改某些样式,从文本框轮廓样式“solid & dark”或“none”开始。
整体机制:
- 从 PowerPoint 2013 文档开始,其中一张幻灯片具有一种形状
- 使用生产力工具将 PPTX 反映为 C#,将其转换为 VB.Net,将其放入我的项目中的一个类中(再次,网站)
- 在代码中找到了将形状添加到幻灯片形状树的位置
- 将该代码替换为对导入字典的类的函数调用,将字典的类对象转换为 openxml 形状,并将形状添加到形状树中。
一切正常。
但是,有些形状是需要轮廓的图形矩形,而另一些是不需要轮廓的文本框。同样,我不知道如何修改文本框上的轮廓。
这是一个说明问题的测试设置(虽然作为一个 openxml 新手,我可能会遗漏一些非常明显的部分)。
起点:创建一个没有大纲的带有文本框的PPTX;复制它;在 PPTX 副本中向文本框添加大纲,在 PowerPoint 中查看,并查看下面的比较:
在 OpenXML Productivity Tool 中比较两个文档,查看 XML 中的差异,并反映对应的代码:
在生产力工具中打开带有没有大纲的文本框的 PPTX,并反映生成整个 PPTX 所需的完整代码。将该代码放在一个新网站项目的类中。创建一个将在页面加载时执行该代码的网络表单。
找到将文本框添加到 shapetree 的位置,以及为形状创建 shapeproperties 的位置。添加应该添加轮廓到文本框的差异代码,以便将轮廓添加到shapeproperties:
在代码活动和非活动状态下运行它(使用 If 语句)并查看生成的 PPTX:
PPTX 带文本框,不带大纲:
带有轮廓的文本框的PPTX(注意:根本没有形状)
然后在生产力工具中打开并比较新输出的 PPTX:
(左边是“无轮廓”,右边是“有轮廓”)
输出文档的比较 XML 看起来与开始输入文档的比较相同,但是,应该具有轮廓形状的输出 PPT 什么都没有显示。奇怪的是,XML 显示形状在那个 PPTX 中,但它没有显示在 PowerPoint 客户端中。
任何有助于理解如何将轮廓添加到某些文本框、箭头和矩形而不是其他文本框的帮助。
【问题讨论】:
标签: asp.net vb.net visual-studio openxml