C# 如何使用Winforms或WPF构建表单完成/文档合并应用程序?

C# 如何使用Winforms或WPF构建表单完成/文档合并应用程序?,c#,wpf,winforms,ms-word,office-automation,C#,Wpf,Winforms,Ms Word,Office Automation,我需要构建一个应用程序,该应用程序接受用户输入数据(例如名称、地址、金额等),然后将其与预加载的文档模板(订单)合并,然后打印此合并文档。我可以使用Windows窗体或WPF进行此项目 关于如何最好地解决这个问题,有什么建议吗?我有Winforms开发经验,但不知道如何处理将数据合并到文档以进行打印。WPF在这方面非常有用 您可以从WPF UI元素(如页面或用户控件)创建文档模板。像在VS设计器中设置任何UI一样设置模板。确定数据将存储在什么形状中(这将是您的DataContext),然后根据其

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


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

WPF在这方面非常有用

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

简化算法:

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

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

您需要使用邮件合并。邮件合并是一种从数据库、电子表格或其他形式的结构化数据中获取数据,并将其插入到诸如信件、邮件标签和姓名标签等文档中的方法。起于