2011-03-18 70 views
1

我有一个C#.NET Winform应用程序,使用它可以打印账单等。在Winform应用程序中打印

但是打印将由使用DMP打印机的用户完成。

所以有可能将打印发送到winform应用程序中的DMP打印机。如果是,那么如何?

此外,我有一个窗体中的DataGridView。现在我想打印显示在gridview中的表格。我该怎么做呢?我必须使用Crystal Reports还是其他?

+1

关于通常从.NET/C#打印:当我们开始我们的第一个大型winforms-CRUD-app时,我还担心打印。因为我真的不喜欢水晶报告,所以我们购买了第三方报告套件(在我们的例子中是DevExpress XtraReports,但也有其他的)。我第一次不愿意花这笔钱,但今天我很开心,我这样做了。 – 2011-03-18 07:40:46

回答

2

那么不知道这个答案,你很好,但我会用PDF夏普或Migra文档从您的数据genereate的PDF文件,并从那里打印,这样我就不会做打印机DMP设置(我猜)

最简单和最快捷的解决方案是使用Visual Basic PowerPack的PrintForm控件(也可以在C#项目中使用它)。

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

只需拖动控制上窗体,然后从代码调用

printForm1.Print(); 

这将打印无论是形式,所以只设计一个表格报表然后调用代码,你完成了。 看看Print the form (Visual C#)你也可以使用VB电源包

+0

但在Visual Studio中提供的水晶报表和简单报表怎么样?我可以使用它们吗? – sqlchild 2011-03-18 07:23:52

+0

@Afnan:先生,根据我的说法,当我们打印winforms时,图像被发送到打印机,对不对?如果是的话,那么当我使用DMP打印机,然后打印一个记录表,这将需要几个小时,因为DMP是为RAW打印而不是图像 – sqlchild 2011-03-18 07:48:30

+0

@Afnan:同样,如果我使用PDF Sharp或Migra文档,那么打印将作为图像或原始数据发送到DMP打印机? – sqlchild 2011-03-18 07:49:38

1

你只能做类似于C#的代码来打印任何文档或页面。

PrintDialog类P1 =新PrintDialog类()

p1.ShowDialog();

+0

也,它会工作的DMP打印机。它不应该将它作为图像发送到打印机,而是作为原始数据发送,否则DMP打印机将花费数小时来打印数据 – sqlchild 2011-03-18 07:47:11

1

我会使用visual studio的emmbeded控件calles“ReportViewer”控件。 您可以在工具箱的“报告”部分找到它。 请注意,你需要有一个应用程序,目标的框架3和以上,让你看到这个控制。 在此控件中,您可以打印到选定的打印机,导出为pdf,word和excel。

检查出来。

0

我知道这里已经有了一个可以接受的答案,但是我希望为最近发现的YouTube教程添加一个新链接。 Print receipt

干杯。