2010-01-26 33 views
4

爲了項目的需要,我想打印在特定位置的LPT1,這將打印一個文件在一個點陣打印機,我應該打印值的地方他們應該去。我真的很討厭回去,我不知道從哪裏開始。 Internet沒有關於使用C#在LPT端口中打印的特定信息,特別是如何在打印時在特定位置發送值。有沒有什麼好的例子?這個教程?將是一個救世主。打印在(並行端口)點矩陣通過C#

+0

今天實際上銷售的消費系統是否還有並行端口? – 2010-01-26 01:09:45

+2

不幸的是,仍然有商業文件需要打印在這些打印機:(但實際上這也發生了支持舊的方式...... – 2010-01-26 01:18:17

回答

5

我可以建議一件事讓你的生活更輕鬆,安裝一個通用的文本打印機驅動程序(這是標準配置)並將其設置爲LPT1端口。然後,您可以簡單地打開'LPT1'併發送escape code序列來指定字體類型(粗體/斜體),強調,字體間距等。我不知道是否需要資源。但我想它會是這樣的:

 
System.IO.StreamWriter sr = new System.IO.StreamWriter(@"\\.\LPT1"); 
sr.Write(0x1b); sr.Write('k'); sr.Write('1'); sr.Write("Hello"); // print in Sans Serif 
sr.WriteLine(); 
sr.Flush(); 
sr.Close(); 

資源:

  • 打印到使用VB.NET一個zebra printer(這可以很容易地轉換爲C#或把它編譯成一個DLL和參考它在你的C#項目)
  • 的如何連接到LPT1
  • MSDN文章在這裏是一個廣泛的有關Parallel Port信息的列表。 (在標題爲「端口I/O和中斷的編程工具」一節附近進一步討論),討論這個稱爲inpout32的DLL的用法。
  • 這是另一篇關於MSDN的文章,它展示瞭如何進行原始打印。

編輯@ 2017-07-12:更新了並行端口鏈接以使用Wayback歸檔機器。

+0

[Parallel port link](http://www.lvr.com/parport.htm) )不再顯示你在回答中描述的內容你是否有類似的鏈接源? – 2017-07-12 14:14:13

+0

@MauricioAriasOlave:更新了鏈接,感到驚訝你沒有想到使用wayback machi東北。 – t0mm13b 2017-07-12 22:49:28

3

問題打印機是否有Windows打印驅動程序?如果是這樣,那麼它是否通過LPT1打印並不重要,它只是使用標準的打印內容。

類似的問題:Dot Matrix printing in C#?

+0

你的意思是我可以創建一個報告,並將其發送到該打印機? – 2010-01-26 01:19:27

+0

如果你有打印機的打印機驅動程序(例如,它顯示在控制面板/設備中作爲打印機),是的,大多數打印機都有一個通用的兼容模式,即使你沒有一個確切的模型也可以使用它們號碼匹配 – ongle 2010-01-26 23:04:29

+1

這使得打印發票的速度降低了500%,因爲它將文本打印爲圖像。 – Vedran 2012-08-29 08:07:38

1

如果打印機有Windows驅動程序,那麼你可以使用標準的印刷技術。請參閱Petzold的書Programming Microsoft Windows with C#以獲得一個很好的介紹。

+0

建議的對比... – 2010-01-26 01:28:42