我需要构建一个应用程序,它接受用户输入数据(例如姓名、地址、金额等),然后将其与预加载的文档模板(订单表格)合并,然后打印此合并的文档。我可以在这个项目中使用 Windows 窗体或 WPF。

关于如何最好地解决这个问题有什么建议吗?我有 Winforms 开发经验,但不知道如何将数据合并到文档中进行打印。

有帮助吗?

解决方案

WPF 非常适合于此。

您可以从 WPF UI 元素(例如页面或用户控件)创建文档模板。设置模板就像在 VS 设计器中设置任何 UI 一样。确定您的数据将以什么形式存储(这将是您的 DataContext),然后绑定其公共属性。然后,您可以将合并的模板放入固定页面并将其添加到 XPS 文档中。您可以非常轻松地打印它或将其保存到磁盘。

简化算法:

  • 创建数据输入表单。
  • 创建一个类型来保存表单中的数据(将此类型称为 Foo)
  • 创建一个与 Foo 绑定的页面模板(当 Foo 实例是 DataContext 时)
  • 将表单绑定到 Foo 的实例
  • 让用户填写表单(从而填写 Foo 的实例)
  • 创建模板的实例(假设它是一个页面)
  • 设置Page.DataContext = fooInstance;
  • 将页面添加到固定页面,然后将其添加到固定文档
  • 将固定文档保存到 XPS 文档
  • 保存 XPS 文档或将其发送到打印队列

我正在做类似的事情并且效果很好。只需转到我的个人资料并阅读我的所有问题即可。它们涵盖了整个过程中的大部分难点。

其他提示

您需要使用邮件合并。邮件合并是从数据库,电子表格或结构化数据的其它形式获取数据,并将其插入到文档,如信函,邮件标签和名称标签的方法。从本文开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top