2011-12-24 62 views
3

我需要打印文档作为我用C#编写的程序的输出。纯文本是不够的 - 我需要桌子,字体选择等。从C#打印数据的好方法?

这听起来像是应该很容易完成的事情,但是,我不知道该怎么做。

这里是我考虑的选项:

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

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

+0

PDF可能是一个不错的选择:http://stackoverflow.com/questions/465433/creating-pdf-files-at-runtime-in-c

我已经按照本教程中立下了汗马功劳-sharp – 2011-12-24 22:26:26

+0

您还应该考虑Html文档 – 2011-12-24 22:28:03

+0

如果要打印RichTextBox的内容,可以使用[RichTextBoxPrintCtrl](http://support.microsoft.com/default.aspx?scid=kb;en-us;812425 )控件作为RichTextBox并使用图像和字体选择打印其内容。我不确定桌子。 – sevenkul 2011-12-24 22:36:22

回答

3

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

2

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

您有额外的好处,您可以保存或发送电子邮件或下载PDF报告,这将增强您的网站的功能。 http://www.mikesdotnetting.com/Article/80/Create-PDFs-in-ASP.NET-getting-started-with-iTextSharp

+0

我想我会用较少的工作将它导出为PDF,但它似乎不能帮助打印。 – svinja 2011-12-25 20:14:34

+0

您可以创建PDF,然后使用它将其发送到打印机。我还没有尝试过,但我认为这可能会满足您的需求... http://stackoverflow.com/questions/273675/print-existing-pdf-or-other-files-in-c-sharp – agarcian 2011-12-25 20:46:15