2

我有一个现有的 XPS 文件,我想将其用作模板并可能将数据绑定到它。我尝试了几种方法,但似乎无法使其正常工作。

有没有人有任何更改现有 XPS 文件以在运行时添加数据然后打印或保存的经验?

任何帮助表示赞赏。

4

3 回答 3

1

XPS 文档符合 Open XML 标准。有一个用于处理这些文档的 SDK。这是 Beth Massi 的一篇操作指南文章:“使用 Open XML SDK 访问 Open XML 文档部件”。

由于您使用的是内部文档结构,您还可以查看“打开 XML 包编辑器”,它可以让您使用 Visual Studio 浏览文档。这是 Beth Massi 的另一个操作指南:“ Handy Visual Studio Add-In to View Office 2007 年文件”。

+汤姆

于 2009-02-17T20:37:24.207 回答
1

用 XPS 做到这一点有点挑战,但这是可能的。

您可以使用我们的 NiXPS SDK 做到这一点。不久前,我在我的博客上发布了一个示例:

XPS 可变数据示例

问候,

缺口

于 2009-02-17T20:53:29.490 回答
0

在写入 XPS 文档的过程中会评估绑定。因此,您无法在 FixedDocument 中设置 {Binding},将该 FD 写入 XpsDocument,并期望在您下次打开该保存的文档时再次获取该原始 FD。

此外,标准的 XpsWriter 确实将所有内容转换为画布上的字形,因此您不能说,原始文本框并希望在将其保存到文档后能够找到它。

我从来没有使用过 NiXPS 库,所以如果尼克说可以做到,你可能想检查一下。

最后一种可能性--您可以以稍后可以找到的形式创建占位符。它们必须是带有某种分隔符方案的文本(类似于 [[{{FORMFIELDHERELOL}}]]),以将文本与其他所有内容区分开来。然后,您可以在 XML 中寻找适合分隔符模式的文本,并为您的绑定文本切换出这些字形。当然,THAT 的问题在于,如果您不使用 X 字符代替 X 字符,您可能会发现必须进行一些重新定位。由于它的所有字形都在画布上,这可能比用鞋带穿针头稍微难一些。

于 2009-03-30T21:17:10.527 回答