2014-03-13 39 views
0

我正在创建一个WPF应用程序。我使用MS Visual Studio 2010,C#和MVVM。如何从WPF MVVM中的Usercontrol创建PDF

在用户控件上,我有一个gridview。该gridview填充来自另一个类的数据,通过绑定和项目源等...没有问题。我看到数据和一切。我也有一些标签和文本框围绕usercontrol。这些将被用户用来填写随机数据。东西像姓名,地址等。你可以称之为订单。 gridview中的产品列表,具体细节如下。

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

我可以导出一个gridview到Excel就好了。但现在我想基本上重新创建一个PDF文件的用户控件。 我已经在线阅读,我可以创建一个usercontrol的图像并将该图像转换为PDF。这会有帮助吗?我从截图中得知,这些文本框仍然有围绕它们的边框等等。

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

如果需要编码,图像或其他任何东西,请发表评论,我将编辑与这些更改相关的问题。

+0

您希望能够将控件打印为pdf,但可以选择删除控件边框,阴影等? –

+0

@MarkGreen是的。就像usercontrol有一个背景颜色的面板,我想隐藏一些按钮,除了文本框中的文本外,文本框可以被设置为不可见。所以它看起来更像是一个打印的表单,而不是用户控件的截图,在这里你可以清楚地看到文本框等等。 –

回答

0

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

如果您决定不站在巨人的肩膀上,并希望推出自己的,那么你就需要实现以下

  • 创建一个单独的控制,可以使用您的视图模型,因为它是DataContext的,但其中控件着色并用于打印
  • 使用System.Windows.Xps命名空间库将控件导出到XPS。
  • 使用第三方工具将XPS转换为PDF。

这是一种痛苦,我知道,但我看不到一条更简单的路线。

+0

是的,我知道它的痛苦。我使用的是componentone,那些帮助也不大。他们也不会给你太多帮助。但如果涉及到它,我将不得不将数据发送到一个普通的用户控件,保存并打印出来。加班。但必须完成。谢谢 –

相关问题