2016-09-06 152 views
1

我需要從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); 

enter image description here

enter image description here

+0

嗨,夥計, 有什麼想法? – Zoltan

回答

0

因爲我不能對你的問題發表意見,我要在這裏問你:你有沒有對報告中的任何數據說明了什麼?我在代碼中看不到任何數據源分配,因此您可能需要提供一些要打印的數據。

您是否嘗試過在您的代碼中使用報表中的PrintOption設置paperSize?我曾經這樣做過;我正在打印收據打印機,但我的紙張設置爲A4,所以我的實際報告數據打印在收據紙張外。嘗試使用A4紙或更好的方式將文檔發送到打印機,然後發送到oneNote,以免浪費紙張並查看打印效果。

+0

嗨Sulieman, 謝謝你的回覆,最後有人試圖幫助。正如我所提到的,我正在使用Crystal Reports。在CR設計器上,我將數據表放在一起,並從代碼中給出一個參數「OrderID」。當我在CR設計師處並按下預覽按鈕時,我會看到打印佈局。當我按下「打印」按鈕時,打印機工作正常,按照預期打印收據。上面的屏幕截圖是CR設置。右鍵單擊設計器中的CR報告。你可以看到紙張尺寸是正確的。我是否也需要從代碼中設置?我沒有在.NET中找到這種紙張尺寸。 – Zoltan

+0

嗨,Suleiman,我將收據打印在Bullzip打印機上,我在A4尺寸紙張的中間看到收據。我開始再次播放打印機設置,併發生了奇蹟。目前它正在打印良好。你可以相信我,我曾多次嘗試過。不幸的是,我不知道哪些設置有幫助。我認爲這是在打印機驅動程序設置中的東西我的代碼是相同的。謝謝你的建議。對不起,我不能給你一個觀點,我的名譽是不夠的。 – Zoltan

+0

如果您的收據打印機是默認打印機,則最後一次考慮此檢查。如果可能是紙張設置是從您的默認打印機而不是您的收據打印機獲取的。如果您進行大量收據打印檢查[POS .Net](https://www.microsoft.com/zh-CN/download/details.aspx?id=42081)。或嘗試使用.Net打印直接打印到您的打印機。 –