2010-08-06 92 views
3

我需要将特定的XML附加到word文档,以便元素显示在正确的位置。这我可以用OpenXML SDK来完成。OpenXML:使用绑定创建可重用的内容控件

事情是我也希望能够定义已经在某种模板中定义的内容控件,以便其他人可以创建xml将附加到的真实文档模板。好吧,不知道人们会否认我的意思,所以我会进一步解释。

可能会有许多不同的文档模板使用相同的XML数据,因此使用相同的内容控件。由其他人来创建文档。

情景:一些不是程序员的家伙需要为通常的信息创建一个新表单,因为有些更改(新布局或somehting)。这与XML信息无关,保持不变。

“一些老兄”的最佳解决方案是在Word中创建文档,并将内容控件拖拽到位(或类似的解决方案)。然后,当XML被添加到文档中时,不会出现问题,因为内容控件是预先绑定的。

现在,这里有几个要点:

1)可以将内容控件预先绑定?如果路径中没有XML,它会不会毫无问题地保持空白?

2)将绑定内容控件到CustomXML这样的这样的,因为i4i法律诉讼,在未来的Word版本中仍然有效?

3)有没有更好的解决方案呢?

在此先感谢。

编辑:

要更清楚。我不想创建具有某些名称来标识它们的内容控件和一个databound xpath。但是那一刻路上没有任何东西。

另一个用户进来并创建一个表单,决定如此的布局,然后将内容控件添加到他想要的信息所在的位置。

稍后使用新表格请求项目X的信息。因此,该表单的副本将被采用,CustomXML将被添加到Docx文件中。现在,因为XML shchema是事先知道的并且在决定CC的路径时使用,所以这个XML数据将被绑定到内容控件。

+0

为了让我清楚地理解你,你希望有一个用户在Word客户端中添加一个CC,当他们这样做时,当它们添加它时绑定到一些数据,对吗? – 2010-08-06 13:15:51

+0

@Otaku我不想事先定义CC,以便他们可以将它添加到他们的Word文档(使用单词客户端),因此Word文档已准备好接受CustomXML。 – 2010-08-06 14:28:33

回答

2

一个很好的选择是使用VSTOVisual Studio for Office)来构建一组文档模板,并附上您的预先绑定代码。这两篇文章提供了一个良好的开端为寻找到这种类型的解决方案的:

有两个线程讨论这一些细节:12

使用VSTO的好处之一是您可以挂钩Content Control eventsContent Control Event Model in Word 2007

如果VSTO不是一个选项,您可以随时查看Add Custom XML Parts to Documents Without Starting Microsoft Office

+0

我目前没有VSTO,认为我需要VS的专业版本。但也许我会抓住一个。没有看过其他文章,但我知道如何附加CustomXML只是不喜欢添加约束后的大多数绑定解决方案,我不能相信文档制作者添加CC的权利。将检查出来,然后让你知道并给予正确的答案,如果一切顺利的话。 – 2010-08-06 15:13:06

+0

很酷。我在VSTO的CC活动中增加了一组链接。这可能有助于钩住用户插入CC并验证。 – 2010-08-06 15:25:02

+1

顺便说一句 - 一般的做法是不要让最终用户插入CC。相反,他们插入Building Block(可以包含CC) - Insert> QuickParts。这样你就不会让它们与开发工具栏混淆。 – 2010-08-06 15:28:54

1

这应该是非常简单的。自定义控件不受i4i诉讼的影响,您可以使用每个控件的标签属性命名它们(警告 - 限制为64个字符)。

+0

我使用了内容控制(我想这就是你所指的),并将它们作为QuickParts添加到模板中,以使它们更容易创建。最大的问题是重复项目,但我将它们添加为表格并多次迭代最后一行。 – 2011-07-19 11:22:21

+0

抱歉是 - 内容控制。很高兴它适合你。 – 2011-07-20 20:34:37