2016-07-05 43 views
1

我正在構建一個訂單打印應用程序,而我原本有一個問題,我解決了自己。我需要在TextBox中設置選項卡位置,以使價格排列起來,而不管項目名稱的長度。我已經離開了下文,因爲他們是我的問題不相關的聲明,但我沒有這樣使用:TextBox與打印輸出之間的選項卡差異

Dim tabs() As Integer = {6, 85} 
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 2, tabs(0)) 

它完美工作爲TextBox但是當我連接到我的愛普生票據打印機併發送內容TextBox1.Text,它將我的標籤解釋爲正常尺寸的標籤 - 而不是6和85中的兩個標籤。我在打印機上獲取了默認定位標籤,它將輸出分開。

任何人都知道我可以設置打印機上的標籤位置,以及(或者也許有另一種方式?),使打印機輸出相匹配什麼是在文本框中?

回答

0

你需要設置你的文本框中輸入製表位和選項卡在打印機停止對相同的字符數或距離(取決於如果您使用的是比例或固定的字體)。

這裏的命令參考應(大部分)與您的打印機。收據打印機確實有一些附加功能,如裁切器和可下載的圖像,但它應該足夠接近。 https://files.support.epson.com/pdf/general/escp2ref.pdf你也可以谷歌的技術手冊爲您的特定打印機應該有任何特定的代碼。

最大的問題是您需要自己生成整個文檔,並將其作爲RAW格式的文檔發送到打印機或打印隊列,其中包含所有初始化序列和控制代碼,並將其發送到打印機RawPrinterHelper(https://support.microsoft.com/en-us/kb/322090)。

它的混亂,但唯一的辦法,我知道得到精確定位,快速輸出和點陣或熱敏收據打印機良好的文字質量。

可能能夠通過將製表位設置爲需要的位置,然後保存配置,如果您的打印機支持這一點。問題在於,如果使用標準Epson驅動程序進行打印,則打印機會重新初始化,並且所有內容都將顯示爲位圖,而不是使用打印機字體和所需的設置進行打印。

您也可以嘗試「通用」打印機驅動程序,其中有插槽,你可以配置打印機初始化代碼,但你仍然需要包括字體更改/加粗/等任何需要的轉義序列。在你的文件中。

+0

謝謝你。它正在走向正確的軌道,似乎有一個更簡單的解決方案版本。通過在Visual Studio中添加Windows.Devices.PointOfService引用,可以簡單地使用posPrinter類,它支持直接從它發送esc/p命令。唯一的問題是我只能找到C#的代碼示例,而不是VB – Rocks

+0

在這裏你去 - ) http://converter.telerik.com/ –

+0

我不知道什麼Windows.Devices類實際上是一部分。它似乎沒有在Visual Studio中列出 –

相關問題