C# 在热敏纸上打印

C# 在热敏纸上打印,c#,wpf,printing,crystal-reports,C#,Wpf,Printing,Crystal Reports,我需要在Crystal Reports的热敏纸上打印收据。我创建了一个打印布局,如果从预览中打印,效果会很好。如果我尝试从代码打印,打印机只打印空纸。打印机安装正确(POS58)。如何从代码中正确打印此内容 ReportDocument rptDoc = new ReportDocument(); rptDoc.Load(Directory.GetCurrentDirectory() + @"\Reports\receipt.rpt"); rptDoc.SetParameterValue("pO

我需要在Crystal Reports的热敏纸上打印收据。我创建了一个打印布局,如果从预览中打印,效果会很好。如果我尝试从代码打印,打印机只打印空纸。打印机安装正确(POS58)。如何从代码中正确打印此内容

ReportDocument rptDoc = new ReportDocument();
rptDoc.Load(Directory.GetCurrentDirectory() + @"\Reports\receipt.rpt");
rptDoc.SetParameterValue("pOrderID",OrderID);
rptDoc.PrintOptions.PrinterName = "POS58";
rptDoc.PrintToPrinter(1,false,0,0);


既然我不能对你的问题发表评论,我想在这里问你:你有关于报告的任何数据要显示吗?我在您的代码中没有看到任何数据源分配,因此可能需要提供一些要打印的数据


您是否尝试过使用报告中的打印选项在代码中设置纸张大小?我曾经这样做过;我正在用收据打印机打印,但我的纸张被设置为A4,所以我的实际报告数据打印在收据纸之外。尝试使用A4纸张将文档发送到打印机,或者更好的方法是将文档发送到oneNote,这样您就不会浪费纸张并查看文档的打印方式。

大家好,有什么想法吗?嗨,Sulieman,谢谢您的回复,终于有人来帮忙了。正如我提到的,我使用的是Crystal Reports。在CR设计器上,我将数据表放在一起,从代码中我只给出一个参数“OrderID”。当我在CR设计器中并按下预览按钮时,我会看到打印布局。当我按下打印按钮时,打印机工作正常,按我的预期打印收据。上面的屏幕截图是CR设置。右键单击设计器中的CR报告。您可以看到纸张大小是正确的。我也需要从代码设置吗?NETHi Suleiman,我把收据打印到牛头印刷机上,在A4号纸中间看到了收据。我又开始播放打印机设置,奇迹发生了。目前它的印刷质量很好。你可以相信我,我试过很多次了。不幸的是,我不知道哪些设置有帮助。我想这是打印机驱动程序设置中的一些东西,我的代码是相同的。谢谢你的建议。对不起,我不能给你一个分数,我的声誉是不够的。最后一个想法是检查你的收据打印机是否是默认打印机。如果可能是纸张设置是从默认打印机而不是收据打印机获取的。如果你做了大量的收据打印检查。或者尝试使用.Net打印直接打印到打印机。