如何从C#打印数据

时间:2010-03-17 17:09:31

标签: c# winforms printing

我搜索过Stackoverflow和google并找到了很多方法 我如何用C#打印东西。

对我而言,最好的方法是填充空白的白色窗体 使用一些标签,文本框和图片框元素并将其打印为窗体。 这种方式非常差,因为它以72 DPI打印,并且对多个不灵活 页面打印。

我发现使用iTextSharp的下一种方法很好,但是有一个问题 iTextSharp只生成PDF-s,你必须在PDF查看器和打印中打开它 从那里。

我喜欢这种思维方式,我创建了一个段落,然后用文字和图形填充它,所以我找到了这个帖子 http://www.devarticles.com/c/a/C-Sharp/Printing-Using-C-sharp/ 在那里讨论如何用C#创建自己的打印引擎,比如iTextSharp, 但非常轻量级......

现在我已经说过,我想知道有没有准备好使用的打印引擎就像iTextSharp,用于打印,而不是用于PDF生成?在不使用CrystalReports等报表服务的情况下,打印内容的最佳方法是什么。

我认为Crystal Reports不适用于我的情况,因为我不想打印通用报告,但是每次我需要打印时都需要动态生成一些文本和图形。

2 个答案:

答案 0 :(得分:1)

我发现在WPF中使用打印内容进行打印要容易得多。

修改
XPS是Microsoft在.NET 3.0中包含的页面描述格式。它名义上是WPF的一部分,并与WPF表单布局模型集成。但您可以在内存中创建XPS文档,并从任何.NET应用程序(包括WinForms应用程序)将它们发送到打印机。

一个例子: http://statestreetgang.net/post/2008/03/Creating-an-XPS-document-in-memory-via-the-DOM.aspx

它大致相当于您探索过的iTextSharp功能,除了:

  • 如果您愿意,可以在内存中完成所有操作,无需保存到文件系统文件中。当然,如果要保存到文件系统文件,也可以这样做。
  • 您不需要外部查看器即可开始打印。

答案 1 :(得分:0)

如果您是编程新手并且有一些数据来自Data Base,并且您希望在从Data Base检索它之后打印它。然后,只需按照此链接,它将指导您一步一步。 Print Data in Dot Net (C#,Vb.net)