在 Winform 应用程序中打印
Posted
技术标签:
【中文标题】在 Winform 应用程序中打印【英文标题】:Printing in Winform Application 【发布时间】:2011-07-17 23:15:17 【问题描述】:我有一个 C#.NET Winform 应用程序,使用它可以打印账单等。
但打印将由使用 DMP 打印机的用户完成。
那么是否可以在 winform 应用程序中将打印件发送到 DMP 打印机。如果是,那么如何?
另外,我在表单中有一个 DataGridView。现在我想打印显示在 gridview 中的表格。我该怎么做呢?我必须使用 Crystal Reports 还是其他?
【问题讨论】:
关于从 .NET/C# 打印的一般情况:当我们开始我们的第一个大型 winforms-CRUD-app 时,我还关心打印。因为我真的不喜欢水晶报表,所以我们购买了第 3 方报表套件(在我们的案例中是 DevExpress XtraReports,但还有其他的)。起初我不愿意花钱,但今天我很高兴我这样做了。 【参考方案1】:我不确定这是否能很好地回答你,但我会使用 PDF Sharp 或 Migra doc 从你的数据中生成 pdf 文件并从那里打印,这样我就不必进行打印机 DMP 设置(我猜)
最简单快捷的解决方案是使用 Visual Basic PowerPack 的 PrintForm 控件(您也可以在 C# 项目中使用它)。
http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx
只需将控件拖到表单上,然后从代码调用中
printForm1.Print();
这将打印表单上的任何内容,因此只需在表单上设计您的报告,然后调用该代码,您就完成了。 看Print the form (Visual C #)你也可以用VB电源包
【讨论】:
但是Visual Studio中提供的水晶报表和简单报表呢?我也可以使用它们吗? @Afnan:先生,根据我的说法,当我们在 winforms 中打印时,图像会发送到打印机,对吗?如果是,那么当我使用 DMP 打印机,然后打印记录表时,需要几个小时,因为 DMP 是为 RAW 打印而不是为图像制作的 @Afnan:另外,如果我使用 PDF Sharp 或 Migra doc,那么打印件将作为图像或原始数据发送到 DMP 打印机? @Afnan:另外,我对Visual Basic 一点也不熟悉,所以我可以使用PowerPack PrintForm 控件吗,请帮我写代码,先生 1.Yescrystal reports
是选项,但如果您使用 vs 2010 vs 不存在,则必须下载它 2.如果您的程序必须与 @987654325 一起使用,您可以将原始数据发送到打印机@ 3.如果您使用 PDF Sharp
或 MigraDoc
将生成 PDF 但我不知道如何打印 PDF(格式图像或原始数据)。尝试从 DMP 打印 pdf 以查看结果是否支持 4 .PowerPack
可以很容易地用在c#
你不用玩VB【参考方案2】:
你只能像 C# 那样编写代码来打印任何文档或页面。
PrintDialog p1=new PrintDialog()
p1.ShowDialog();
【讨论】:
另外,它是否适用于 DMP 打印机。它不应该将其作为图像发送到打印机,而是作为原始数据发送,否则 DMP 打印机将花费数小时来打印数据【参考方案3】:我会使用 Visual Studio 的嵌入式控件调用“ReportViewer”控件。 您可以在工具箱的“报告”部分找到它。 请注意,您需要有一个针对框架 3 及更高版本的应用程序才能看到此控件。 在此控件中,您可以打印到选定的打印机,导出为 pdf、word 和 excel。
检查一下。
【讨论】:
【参考方案4】:我知道已经有一个公认的答案,但我希望添加一个新链接,指向我最近发现的一个 youtube 教程。 Print receipt
干杯。
【讨论】:
以上是关于在 Winform 应用程序中打印的主要内容,如果未能解决你的问题,请参考以下文章
c#的winform打印程序如何实现一张纸上打印两份内容(如图)