2011-06-20 75 views
1

我正在使用this code將點陣式打印機報告打印到點陣式打印機。報告採用票據收據的格式。我想要的是,打印機應該在收據完全打印的位置(即要打印的文本的末尾)完全停止,並且不要接收紙張的其餘部分並且不在其上打印任何東西。打印到點陣式打印機

當打印收據的負荷並且可能會出現長隊時,如果最終用戶必須將紙張(已浪費)重新裝回打印機,將會非常耗時。因此,我正在尋找打印機可以在要打印的文本完成後立即停止進紙的方式。

+0

什麼打印機型號/型號?通常它是打印機專用的,它在用戶手冊中有介紹。雖然以前對相關(但不一定相似)問題的回答可能會對您的情況有所瞭解。 http://stackoverflow.com/questions/449777/print-on-dot-matrix-printer-in-net – David

+0

這是wipro!在用戶手冊中你的意思是什麼?就像讓它停在那裏的方式一樣?我需要更改一些設置嗎? – Saurabh

+0

該代碼似乎將其用作普通的Windows打印機。這意味着您應該將收據結合在一個頁面上。 –

回答

3

這聽起來像你要求的是如何打印收據作爲一個連續的流,而不是逐頁。您鏈接的代碼完全是頁面驅動的和麪向頁面的。你可以在一個以頁面爲主的視圖系統中工作,但你將不得不做額外的工作。

您應該可以在一個頁面上打印多個東西,方法是更改​​PrintPage代碼以在每個頁面上輸出多個圖像塊。您必須管理每個矩形的偏移量,以便將第二個圖像放置在第一個圖像的下方,並且您必須弄清楚下一個報告頁面的內容不適合當前頁面上剩餘的空間。我期望輸出將被剪切到當前頁面,所以如果您在頁面邊界之外(超過頁面末尾)繪製,則不會輸出任何內容。

當下一個報告圖像不適合當前頁面上剩餘的空間時,您可以選擇前進到下一頁。

或者,您可以打印儘可能多的頁面,然後在下一頁的頂部打印該報告圖像的其餘部分。爲此,您需要計算頁面1上的剩餘空間與報告圖像矩形的交集,並保存該交集的高度。結束該頁面。當頁面2滾動時,再次打印相同的報告圖像,但是這次將輸出矩形按前一頁上打印的矩形的高度進行偏移。這是假設剪貼矩形已經在打印設備句柄上(很有可能)。

像這樣在不同頁面上分割報表的缺點是,最終可能會出現圖形或甚至在頁面之間被切斷或分割的文本行。這些將很難閱讀。如果您知道字體高度和行間距以及報表的佈局方式,我想您可以計算出猜測文字行在輸出矩形中的位置,並將您的輸出矩形四捨五入到行高的整數倍,但這已經深入到了哈克克魯德領域。