2012-07-10 16 views
5

我需要使用C#.NET將內容發送到打印機,方法與PRINT命令相同。記事本與PRINT命令不同的是什麼?

我有Godex熱敏打印機與QLabel捆綁軟件。現在它可以選擇將標籤另存爲命令,您可以使用命令提示符PRINT命令將其傳遞到打印機。該文件是這樣的:

^Q80,3 
^W100 
^H10 
^P1 
^S3 
^AD 
^C1 
^R2 
~Q+0 
^O0 
^D0 
^E35 
~R200 
^L 
Dy2-me-dd 
Th:m:s 
AH,0,0,1,1,0,0,X 
AH,744,0,1,1,0,0,X 
AH,746,560,1,1,0,0,X 
AH,0,550,1,1,0,0,X 
AG,160,208,1,1,0,0, 
AA,234,283,1,1,0,0,Haloo 
E 

,當我這樣做的工作:

net use LPT2 \\localhost\godexUsbPrinter /yes 
print /D:LPT2 label.cmd 

而且它很好地打印標籤我出來。

現在,如果我打開記事本和打印這個,它只是打印我這個文本。

我想知道PRINT命令在底層做了什麼,我如何編程我的基於C#的程序來複制行爲?因爲當我實現打印邏輯時,它就像記事本一樣打印純文本。

我知道我可以用C#中的Process.Start調用PRINT命令,但我需要始終替換標籤模板中的某個佔位符值。我可以在磁盤上創建一個臨時文件並打印,但我寧願避免這種情況。

+0

我想它將^ Q等翻譯成相應的控制字符 – 2012-07-10 10:15:44

+0

打印在這方面沒有做任何事情,那就是區別。記事本盡力顯示文件中的任何字符,但可能會刪除過程中的一些不可打印的字符。 – 2012-07-10 10:17:41

回答

4

說實話,問題標題是錯誤的。 PRINT根本不會做任何特別的事情,它只是將其所有輸入刷新到打印機。它是記事本,它通過Windows的打印系統發送各種命令,用於分頁和行尾,以及最終打印的數據。您顯示的代碼是原始打印機數據,因此您必須將其發送爲「原始」,而不是文本。所以在技術上它是this question的重複。

如何解釋here。它使用P /調用winspool.Drv

+0

謝謝你的澄清。這工作。我應該改變問題標題? – 2012-07-13 09:11:08

+0

@JanisVeinbergs我試圖澄清一點。 :) – CodeCaster 2012-07-13 09:13:18

相關問題