从C#打印数据的好方法?

从C#打印数据的好方法?,c#,.net,printing,C#,.net,Printing,我需要将文档打印为我正在用C#编写的程序的输出。纯文本不够-我需要表格、字体选择等 这听起来像是一件非常容易完成的事情,但是,我不知道怎么做 以下是我正在考虑的选项: DocX文档很容易生成,但是,我不知道如何打印它们 Crystal Reports显然已从.NET中删除,但仍可以下载,它似乎具有该功能。有这方面的经验吗 我可以生成一个图像或表格并打印出来。但是,文本在打印时看起来很糟糕。我想要清晰的字母 我可以使用XPS,但我认为这不适用于所有打印机?这个程序不能挑剔打印机 我可以手动创建打

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

这听起来像是一件非常容易完成的事情,但是,我不知道怎么做

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

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

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

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

我非常喜欢将自定义报告作为PDF文档生成。这个库有点复杂,您需要从头开始构建所有内容(不像Crystal reports),但相信这是值得的

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


我通过本教程实现了很多:

PDF可能是一个不错的选择:你也应该考虑HTML文档,你想打印ReXTrimeBox的内容,你可以使用控件作为ReXTrimeBox并用图像和字体选择来打印它的内容。我对表格不太清楚。这是WinForms应用程序吗?是的,是WinForms。还有L.B,我还没有想到,我想我要用HTML试试。WebBrowser控件具有打印功能,HTML可能是最容易生成的文档类型。我想我将使用它以较少的工作量导出为PDF,但它似乎无助于打印。您可以创建PDF,然后使用它将其发送到打印机。我没有试过,但我想这可能会满足你的需要。。。