【问题标题】:Good ways to print data from C#?从 C# 打印数据的好方法?
【发布时间】:2012-01-27 11:17:11
【问题描述】:

我需要打印文档作为我用 C# 编写的程序的输出。纯文本是不够的 - 我需要表格、字体选择等。

这听起来应该非常容易完成,但是我不知道该怎么做。

以下是我正在考虑的选项:

  • DocX 文档很容易生成,但是我不知道如何打印它们。
  • 显然已从 .NET 中删除但仍可下载的 Crystal Reports 似乎具有该功能。有这方面的经验吗?
  • 我可以生成图像或表格并打印出来。但是,打印时文本看起来很糟糕。我想要清晰的字母。
  • 我可以使用 XPS,但我认为这不适用于所有打印机?该程序不能挑剔打印机。
  • 我可以手动创建打印机可以理解的任何格式,然后以某种方式手动发送。这可能需要做很多工作,我不知道从哪里开始。

真的没有更简单的解决方案吗?如果没有,最好的选择是什么?

【问题讨论】:

  • PDF 可能是一个不错的选择:stackoverflow.com/questions/465433/…
  • 您还应该考虑 Html 文档
  • 如果要打印 RichTextBox 的内容,可以将RichTextBoxPrintCtrl 控件用作 RichTextBox,并使用图像和字体选择打印其内容。我不确定表格。
  • 这是一个 WinForms 应用程序吗?
  • 是的,它是 WinForms。还有 L.B,我没有想到这一点,我想我会用 HTML 来试试。 WebBrowser 控件具有打印功能,而 HTML 可能是最容易生成的文档类型。

标签: c# .net printing


【解决方案1】:

我真的很喜欢 ITextSharp 作为一种将自定义报告生成为 PDF 文档的方式。该库有些复杂,您需要从头开始构建所有内容(不像 Crystal 报表),但相信这是值得的。

您还可以保存或通过电子邮件发送或下载 PDF 报告,这将增强您网站的功能。

通过学习本教程,我取得了很多成就:http://www.mikesdotnetting.com/Article/80/Create-PDFs-in-ASP.NET-getting-started-with-iTextSharp

【讨论】:

  • 我想我会用它以更少的工作导出为 PDF,但它似乎对打印没有帮助。
  • 您可以创建 PDF,然后使用它发送到打印机。我没有尝试过,但我认为这可能会满足您的需求...stackoverflow.com/questions/273675/…
【解决方案2】:

手动将其发送到打印机不需要太多工作。您只需使用PrintDocument class 并处理其事件即可进行绘图。您需要了解 GDI+,但这是最好和最有效的方法。例如,您可以将 RichTextBox 的结果绘制到它。

【讨论】:

    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    相关资源
    最近更新 更多