【问题标题】:How does one create a PDF from a Usercontrol in WPF MVVM如何从 WPF MVVM 中的用户控件创建 PDF
【发布时间】:2014-03-13 12:58:14
【问题描述】:

我正在创建一个 WPF 应用程序。我使用 MS Visual Studio 2010、C# 和 MVVM。

在用户控件上,我有一个网格视图。该gridview通过绑定和itemsourceing等填充了来自另一个类的数据......那里没有问题。我看到了数据和一切。我在用户控件周围还有一些标签和文本框。用户将使用这些来填写随机数据。名字,地址之类的东西。你可以称之为订单。网格视图中的产品列表以及下面提供的详细信息。

一旦用户单击确定,应用程序现在应该创建整个用户控件的 PDF。我怎么做?

我可以很好地将网格视图导出到 Excel。但现在我想基本上将用户控件重新创建为 PDF 文件。 我已经在线阅读,我可以创建用户控件的图像并将该图像转换为 PDF。那会有帮助吗?我从屏幕截图中知道,文本框周围仍然有边框等。

但是现在,我如何使用 MVVM 方法从用户控件创建 PDF? 还有一个附带问题。如果我可以使用保存到对话框,用户可以在其中选择保存文件的位置,我可以在字符串中获取该位置以使用它在单独的用户控件上的报表查看器中打开 PDF 文档吗?

如果需要编码、图像或其他任何内容,请发表评论,我会根据更改编辑问题。

【问题讨论】:

  • 您希望能够将控件打印为 pdf,但可以选择删除控件边框、阴影等?
  • @MarkGreen 是的。就像用户控件有一个带有背景颜色的面板,我想隐藏一些按钮,文本框可以设为不可见,除了其中的文本。这样它看起来更像是打印的表单,而不是用户控件的屏幕截图,您可以清楚地看到文本框等...

标签: c# wpf pdf mvvm user-controls


【解决方案1】:

从 UserControl 生成 PDF 在 C# 中并非易事。我强烈建议您找到一个第三方工具来创建您的报告设计并使用它来导出为 PDF。

如果你决定不站在巨人的肩膀上,想要自己动手,那么你需要实现以下内容

  • 创建一个单独的控件,该控件可以使用您的 ViewModel 作为它的 DataContext,但该控件具有用于打印的颜色和阴影
  • 使用 System.Windows.Xps 命名空间库将控件导出到 XPS。
  • 使用第三方工具将 XPS 转换为 PDF。

我知道这很痛苦,但我找不到更简单的路线。

【讨论】:

  • 是的,我知道这很痛苦。我正在使用componentone,这也没有多大帮助。他们也没有给你太多帮助。但如果涉及到它,我将不得不将数据发送到一个普通的用户控件,保存并打印它。加班。但必须这样做。谢谢
猜你喜欢
  • 2016-08-08
  • 1970-01-01
  • 2011-07-13
  • 2011-10-14
  • 2011-03-21
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多