首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XPS表单填写

XPS表单填写
EN

Stack Overflow用户
提问于 2009-03-26 19:35:38
回答 5查看 2.5K关注 0票数 0

有没有办法在C#中用XPS文档填写表单?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-30 21:10:22

下面是你如何做到这一点。

首先,创建一个对象(POCO很好),其中包含希望用户为您的表单填写的表单字段。接下来,将表单创建为FixedDocument。它应该有对你的POCO起作用的绑定。然后创建一个设置好的窗口,以便用户可以为这些字段输入值。

将POCO (普通旧CLR对象)绑定到窗口中的TextBoxes。用户输入表单数据后,获取现在已填充的对象并将其设置为FixedDocument的DataContext。创建XpsWriter并将FixedDocument写入输出(文件、打印机等)。

我会给你代码,但由于我实际上是为了工作而这样做(或类似的事情),我想我不能。我可以告诉您,最困难的部分是处理XPS文档。你可以根据你在那里的经历来判断。

票数 2
EN

Stack Overflow用户

发布于 2009-03-26 19:47:13

这不是一个理想的解决方案。原因是XPS中的文本是由Glyphs表示的,在XPS中,字符(粗略地说)被指定为特定字体的字符形状表的索引,而不是像Unicode这样的方便的东西。并且Glyphs必须有特定的位置,每个字符都从字符串的原点偏移。如果字符串必须换行到多行上,则必须放入许多单独的Glyphs对象,这些对象都是单独定位的。它不是一种逻辑格式,而是一种物理格式,而且它在生成后不会特别容易被更改。

最好将模板文档定义为FlowDocument。这是一种逻辑上更易于操作的格式,而不是物理上的“冻结”格式。(从技术上讲,XPS文档是一个FixedDocument)。然后,您可以将FlowDocument冻结到FixedDocument中,以便在填充后将其导出为XPS。

Read more about Flow Documents.

票数 3
EN

Stack Overflow用户

发布于 2009-03-26 19:38:05

如果你想填写XPS表格,yes。XPS是XML,所以您可以更改它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/687248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档