痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 11247|回復: 38

有關英文條碼機列印中文的問題.

  [複製鏈接]
發表於 2011-11-11 02:44:29 | 顯示全部樓層 |閱讀模式
有關英文條碼機列印中文的問題.

這是發生在20幾年前,還沒有網路的DOS年代,當時在一家貿易公司上班,負責業務與機器維修,還有員工維修教育訓練,因為要開拓新市場,所以公司開始進口一些有關條碼機的機器,但是有關條碼機的資料,在市面上非常少,也沒有像現在有網路可以查,因為在台灣的特定市場裡,幾乎一定要可以列印中文的,才有辦法銷售出去,而日本的機器因為有設計漢字,所以才可以銷售,並且還有附上說明書,教你如何以BASIC指令去控制列印條碼機.

而事情是在找到美國的產品時發生的,因為他們的機器只能列印英文,而請他們設計可以列印中文的軟體也不要,他們的原則是賣給你機器,另外再賣你套裝軟體(在台灣賣的話是要賣機器附軟體,所以價格很重要),他們也不告訴你怎麼使用指令,以便自己可以寫程式去控制它,連自己想要控制如何列印自己的英文格式都不行,何況是中文,就是純粹用他們已寫好的套裝軟體,只能列印已定好範圍的格式,但因為價格卻是比日本的更便宜,具有市場的競爭力,所以老板就要我想辦法,看看能否克服這個問題.

當時我就在想,我既不可能自己去開發一台條碼機來用,而美國也不願意單為台灣來設計中文版本,因為他們是以全球市場做考量,公司則是非常冀望能夠銷售美國品牌的,也就是不想放棄這個機種,那我怎麼辦呢?

可能你沒有機會遇到與我相同的狀況,但是人生之中一定會遇到許許多多,奇奇奇怪的事情,有些真的沒有辦法解決,但是有一些是有機會的,而你是否放棄了這個機會,當我們遇到一些感覺上,可能沒有希望的絕望狀況,思考即使只有千分之一,或者萬分之一的機會,也不放棄希望,如何突破現況,而解決問題.

如果是你的話怎麼處理,答案不會很困難,但是可能需要動一些腦筋,你若有興趣動動腦的,可以把你的想法貼上來,大家來一起討論,我把已有的條件列出來:

1. 美國進口美國品牌條碼機一台,界面是Printer Port和Rs232.
2. 條碼機英文列印套裝軟體一套.
3. 可以列印英文的一定範圍內的固定格式.
4. 完全無法列印中文,可以列印條碼.
5. 不知該條碼機的控制指令.
6. 有日本的條碼機電腦BASIC指令說明. (控制碼與美國品牌的不同)

等約一到兩週的時間,我會稍為把當時的情形整理一下,到時候再它貼出來,以供大家參考.
發表於 2011-11-11 14:10:04 | 顯示全部樓層
本帖最後由 cnpan 於 2011-11-11 02:13 PM 編輯

這像是逆向工程了.
要能先有刺激及反應去反推.
所以先解碼RS232 給條碼機的指令.
使用單純指令,再略改指令去解碼,就推算出控制碼.
而由日本的控制碼,可以看出條碼機可能有的指令.
內容就像是EPSON 撞針印表機,有字碼也有點陣輸入.
 樓主| 發表於 2011-11-11 15:15:19 | 顯示全部樓層
cnpan 發表於 2011-11-11 02:10 PM static/image/common/back.gif
這像是逆向工程了.
要能先有刺激及反應去反推.
所以先解碼RS232 給條碼機的指令.

請問一下你要如何解碼RS232的指令呢?
發表於 2011-11-11 18:27:18 | 顯示全部樓層
本帖最後由 cnpan 於 2011-11-11 08:25 PM 編輯

使用另一部PC,接收rs232碼
或是以basic 軟体發出不同組合指令,是否有要求的動作出現.
發表於 2011-11-12 09:01:04 | 顯示全部樓層
1.請告知條碼機 型號廠牌  
2.條碼機屬特專業機種 印中文 只是將中文字轉成圖型模式
3. 條碼機也有通用格式 視廠牌而定 目前台灣常用大概有5-6種
發表於 2011-11-12 10:21:18 | 顯示全部樓層
附件是三套錄進早期DOS的Shareware!!
是ShareWare, 不是FreeWare...

試用範圍:
只要是台灣合法公民 ,且不使用於商業環境的個人用戶 ,或非營利之公益團體皆可長時間試用。

BAR-CODE.ZIP (1.31 MB, 下載次數: 69)
發表於 2011-11-15 23:40:41 | 顯示全部樓層
SCOTTWANG大:
   小弟以前因為工作關係有接觸到一點自動化,那時候接觸到一些條碼機(精技代理) 我印象是條碼機使用 CODE 39或是其他...其實條碼和中文應該是分開的,條碼機接收的是RS232的訊號,條碼機本身有起始以及結束的指令,不知道日本機器是否也如此,當初是ZEBRA 條碼機,印中文因為不會牽涉到條碼的分辨所以只要用列印"圖案"的方式把中文的圖案送過去就可以了.
   至於不知道條碼機的控制指令,有一種工具叫做協定分析儀"protocal analyzer" 把它掛在RS232上面就可以抓到條碼的控制指令,只要把 日本的BASIC條碼指令軟體配合上 美國機器的控制指令應該可以解決此一問題吧!!  我不會軟體,只會建議...
 樓主| 發表於 2011-11-16 00:43:47 | 顯示全部樓層
antlu 發表於 2011-11-15 11:40 PM static/image/common/back.gif
SCOTTWANG大:
   小弟以前因為工作關係有接觸到一點自動化,那時候接觸到一些條碼機(精技代理) 我印象是條碼 ...

你說的是要花$$的,當初沒有想到用這些,若是沒有更好的方法時,或許會採用.

 樓主| 發表於 2011-11-16 04:06:05 | 顯示全部樓層
banny01 發表於 2011-11-12 09:01 AM static/image/common/back.gif
1.請告知條碼機 型號廠牌  
2.條碼機屬特專業機種 印中文 只是將中文字轉成圖型模式
3. 條碼機也有通用格 ...

>1.請告知條碼機 型號廠牌  
廠牌不知,也不重要.

>2.條碼機屬特專業機種 印中文 只是將中文字轉成圖型模式
在DOS時代,中文字你怎麼轉?
發表於 2011-11-16 09:38:11 | 顯示全部樓層
本帖最後由 banny01 於 2011-11-16 09:42 AM 編輯
scottwang 發表於 2011-11-16 04:06 AM static/image/common/back.gif
>1.請告知條碼機 型號廠牌  
廠牌不知,也不重要.


2.  抓倚天中文24or 16字型

1.  錯 廠牌才重要  因為只有隻到廠牌 才能知道他是用哪一種條碼機語言 (zpl alligo tspl sato .......)
)
否則你是否要用一般印表機格是列印 那便是另一種方式去列印條碼

可是如上所述 你是有一台機器要印條碼

發表於 2011-11-16 09:50:31 | 顯示全部樓層
antlu 發表於 2011-11-15 11:40 PM static/image/common/back.gif
SCOTTWANG大:
   小弟以前因為工作關係有接觸到一點自動化,那時候接觸到一些條碼機(精技代理) 我印象是條碼 ...

原則上 印中文 所有條碼機都是用圖形方式處理
 樓主| 發表於 2011-11-16 14:22:37 | 顯示全部樓層
banny01 發表於 2011-11-16 09:50 AM static/image/common/back.gif
原則上 印中文 所有條碼機都是用圖形方式處理

>1.  錯 廠牌才重要  因為只有隻到廠牌 才能知道他是用哪一種條碼機語言 (zpl alligo tspl sato .......)
)

因為不必管廠牌,也沒有它的條碼機語言,只有英文的列印固定範圍格式的軟體,所以才需要做這樣的破解動作,而且解開之後,不管什麼廠牌,只要它原來可以印什麼,現在就可以印什麼.
發表於 2011-11-16 16:43:26 | 顯示全部樓層
scottwang 發表於 2011-11-16 02:22 PM static/image/common/back.gif
>1.  錯 廠牌才重要  因為只有隻到廠牌 才能知道他是用哪一種條碼機語言 (zpl alligo tspl sato .......) ...

你說的  應該是用windoes driver 方式列印  

可是他還是需要 機型 否則如何安裝  print driver
 樓主| 發表於 2011-11-16 19:38:19 | 顯示全部樓層
banny01 發表於 2011-11-16 04:43 PM static/image/common/back.gif
你說的  應該是用windoes driver 方式列印  

可是他還是需要 機型 否則如何安裝  print driver ...

在DOS時代的軟體,一般是整合性的,即使有Driver,在安裝時,只是把它安裝好,讓條碼機能夠列印條碼,一般使用者也無法去更動它.

這整個的重點在不能印中文的問題,要破解那台條碼機所使用的控制碼.
發表於 2011-11-17 08:36:41 | 顯示全部樓層
原來你是要破解條碼機韌體  不了解條碼機語言 如何破解  每種條碼機都有其特殊格式

乾脆自己寫還比較快 而且還沒有侵權問題

條碼機語言是不相容的 每種皆有其特色  

你要看其控制碼 大部分條碼都有debug模式 只要知道如何進入 即可列印出其透過rs232貨lpt 印出

 樓主| 發表於 2011-11-17 09:11:40 | 顯示全部樓層
本帖最後由 scottwang 於 2011-11-17 09:34 AM 編輯
banny01 發表於 2011-11-17 08:36 AM static/image/common/back.gif
原來你是要破解條碼機韌體  不了解條碼機語言 如何破解  每種條碼機都有其特殊格式

乾脆自己寫還比較快 而 ...


我想你可能還沒搞懂標題開頭內容寫的意思.
不是破解條碼機韌體,而是不知道那台條碼機的控制碼,才要解決如何控制條碼機列印中文.

>乾脆自己寫還比較快 而且還沒有侵權問題
你說要寫什麼,怎樣寫呢?
  
>你要看其控制碼 大部分條碼都有debug模式
什麼都沒有,你怎麼進入debug模式?
發表於 2011-11-18 09:32:19 | 顯示全部樓層
1. 美國進口美國品牌條碼機一台,界面是Printer Port和Rs232.
美國廠牌大部分用allago 語言

2. 條碼機英文列印套裝軟體一套.
列印套裝軟體可抓其他列印套裝軟體 試用版可印單筆 無法印資料庫

3. 可以列印英文的一定範圍內的固定格式.
了解條碼機語言 即可按格式列印 並不難

4. 完全無法列印中文,可以列印條碼.
當然 因為中文是用圖形方式列印

5. 不知該條碼機的控制指令.
所以知道廠牌機型是很重要的
唯有知道才能 依他的格式去處理

6. 有日本的條碼機電腦BASIC指令說明. (控制碼與美國品牌的不同)
當然不同 一個是日系 一個是美系
不過其格式大同小異 都分為3個部分 1 起始部分 2 資料內容 3 結束部分 才會列印
一般而言用控制碼 對條碼機而言是比較 低階寫法 就像是你用asm去寫程式
而用列印套裝軟體是比較高階寫法 如你使用word去做文件
發表於 2011-11-18 10:42:15 | 顯示全部樓層
banny01 發表於 2011-11-18 09:32 AM static/image/common/back.gif
1. 美國進口美國品牌條碼機一台,界面是Printer Port和Rs232.
美國廠牌大部分用allago 語言

> 20幾年前,還沒有網路的DOS年代
時空環境不同,scott 大必有妙招,請等著看就好

basic? algol?
當年 PC 記憶體 640K,可用約 500K,程式都是極精簡; 機器的 ROM 可能只有 16K,放條碼格式很夠用,沒必要增加成本

要破 RS-232/422 就串個 null modem 中間人偷聽+記錄
控制碼 格式 都可以猜出來 (明文攻擊/差分攻擊)
發表於 2011-11-18 18:25:33 | 顯示全部樓層
條碼機語言 是條碼機內建  不需要 $$

dos時代  windows時代 皆可用
發表於 2011-11-19 00:54:42 | 顯示全部樓層
banny01 發表於 2011-11-18 06:25 PM static/image/common/back.gif
條碼機語言 是條碼機內建  不需要 $$

dos時代  windows時代 皆可用

條碼機內建的程式語言跟作業系統單然無關,不過這裡說明的是時空條件。
不是現在要來解的問題,不必太認真

20幾年前,條碼機連 ROM都不到 16K 你要內建什麼?
20幾年前,連最新銳的 386 一套十幾萬都只有 640K 記憶體可用,哪裡還 windows?
當年 44256 RAM 光華商場一顆就要 2000多,
低價 RS-232 設備哪有裝 RAM 的,還跑程式?
發表於 2011-11-19 09:25:00 | 顯示全部樓層
本帖最後由 banny01 於 2011-11-22 10:44 AM 編輯

20幾年前 條碼機一台要100000 是低價rs232設備  ?  

20幾年前 你說的是哪一台條碼機 rom 不到16k 我好像沒見過

發表於 2011-11-22 01:03:06 | 顯示全部樓層
各位版大,別火大!重點是,如何解決版主的問題,才是重點 ^_^
發表於 2011-11-22 10:37:55 | 顯示全部樓層
本帖最後由 banny01 於 2011-11-22 10:39 AM 編輯

各位版大,別火大!重點是,如何解決版主的問題,才是重點 ^_^


請問一下 1及2 都是用條碼機語言所寫 只是不同廠牌  列印資料是一樣 只是位置可能稍有不同
我要如何將其共用同一格式阿   

1
^XA^FO20,20^A0,30,30^FDTHIS IS TEST^FS^XZ

2
(STX)L(CR)13220000200020THIS IS A TEST(CR)Q0001(CR)E(CR)
發表於 2011-11-22 10:48:39 | 顯示全部樓層
>>>>>>>>>>>等約一到兩週的時間,我會稍為把當時的情形整理一下,到時候再它貼出來,以供大家參考.

請你還是貼出來吧   或許我還可給你一些建議
 樓主| 發表於 2011-12-4 09:00:43 | 顯示全部樓層
本帖最後由 scottwang 於 2011-12-4 09:01 AM 編輯

當時公司想要開始進條碼機來銷售時,在市面上的還是以印數字為大宗,若有自己進口的則不知,因為公司銷售對象特殊市場的需求,所以條碼機一定要能列印中英文,

我不知道當時的日本機器,是否有將dump mode列在手冊裡,因為翻遍了整本手冊還是沒看到能用的指令,但是美國的應該沒有,因為他們的重點在他們的套裝軟體,記得後來有另外再進德國的機器,手冊裡連電路圖都有,日本的都沒有,所以沒辦法修的,都要送板子回日本修.

有次為了一台故障的條碼機,還特別搭機送到日本原廠去,結果,原廠的工程師說找不到問題點,想這樣就把我打發,我想路途遙遠,而且來回就要花好幾萬塊,就請他再檢查看看,結果等了一段時間,還是找不出問題,最後我請他讓我看電路圖,因為整體的電路,龐大又很複雜,所以在台灣時,無法判斷問題出在那一個部份,現在經過工程師的說明,範圍縮小了,根據狀況和電路圖,我判斷問題出在一個電晶體和電容的地方,那個工程師看看,還是不相信,硬是不聽我的,結果因我人在國外,那麼腦袋想的就是不能白白跑一趟,所以就請他把零件換換看,最後他終於說可以了,結果就如我所說的,就這樣修好了,還好,我堅持立場,要不然不知如何回國,心想碰到這種這麼廬的,真是沒辦法,他自己找不出來,告訴他也不想聽. (那個工程師不會講英語,而我不會說日語,所以剛開始都是講英語透過日本的業務翻譯,最後時則比手畫腳)

所有的解答,可能不是只有一種,我不知在當時的時空,大家碰到這種問題是會放棄呢,或者想辦法全力解決,在今天若只是要單純的解答,在前面幾位的貼文中,把它整合一下,或許就可以得到一種解答方式.

當時大概的處理程序如下:

01. 把日本的條碼機設為由印表機印出.
02. 用日本的軟體由日本的機器,印出一個全黑的方塊圖案.
03. 把點矩陣式印表機設定為hex dump模式,放上紙.
04. 再由電腦控制,由矩陣式印表機印出16進位碼.
05. 由於所印出的16進位碼資料太多,導至難以判斷圖型與資料的相對關係.
06. 重新用條碼機印出一個水平與垂直點數不相等的簡單圖型.
07. 再由矩陣式印表機印出16進位碼.
08. 由所印出的16進位碼,再判斷16進位碼與圖型的關係.
09. 用日本的軟體輸出一個漢字,由日本的機器,印出漢字.
10. 電腦改接矩陣式印表機,也是用hex dump模式.
11. 由點矩陣式印表機印出漢字的16進位碼,再判斷16進位碼與字型的關係.

印出的16進位格式類似如下,Printing Hex Dump:
http://files.support.epson.com/htmldocs/fx890_/fx890_rf/images/64.gif
http://files.support.epson.com/h ... 90_rf/images/64.gif
http://files.support.epson.com/h ... roub_1.htm#printing hex dump b

12. 把美國的條碼機設為由印表機印出.
13. 在軟體上選定一個簡單的圖型,由印表機印出.
14. 電腦改接矩陣式印表機,也是用為hex dump模式.
15. 由點矩陣式印表機印出簡單的圖型的16進位碼,再判斷16進位碼與圖型的關係.
16. 由第15項的動作得到列印圖型的hex控制碼.
17. 以Turbo C寫一個抓取倚天字型的軟體,再把想要用的所有字存成一個檔案.
18. 以BASIC程式寫一個輸出字型的測試軟體.
19. 若是測試成功則往下,沒有成功就往第18項.
20. 開始寫可以輸出中文的整合性條碼機軟體.

因為主要寫程式的人不是我,我只是負責解決無法由條碼機印出中文的問題,後續的程式都由另一個程式人員繼續寫正式使用的程式.

雖然我也會寫條碼機程式,但是那並非我的主要工作,因此若您是有專門在寫條碼機程式,應該都是比我厲害,就像當時負責寫程式的人員,剛開始也是不會寫程式,我教他一些基本的程式寫法,後來他又去補習,也買書來K,因為每天都在寫,所以後來他的功力就比我強多了,連UNIX系統也都會寫了.

列印圖型的hex控制碼,都是由ASCII Code的碼所決定,只要知道它的軟體安排方式就可以列印圖型,,矩陣式印表機的中文也是以圖型模式列印的.

BASIC程式對BARcode的寫法如下:
http://www.fel.fujitsu.com/support/printer/manuals/barcode.pdf

ASCII Code 表.
http://www.ascii.cl/

有關條碼機的相關資料.
http://www.barcodehq.com/primer.html
發表於 2011-12-4 11:48:02 | 顯示全部樓層
scottwang 發表於 2011-12-4 09:00 AM static/image/common/back.gif
當時公司想要開始進條碼機來銷售時,在市面上的還是以印數字為大宗,若有自己進口的則不知,因為公司銷售對象 ...

scottwang大;
   佩服你的不服輸精神,也唯有如此才能夠把任務完成, 以我過往的經驗,日本人一般而言只提供線路圖和機器圖,美國人會提供電路圖和電路說明,德國我就沒有接觸到,日本機器比較穩定,但是不把knowhow 告訴你,美國人會告訴你但是機器不穩定容易當機,這幾年到是有些改變...美國機器創意和穩定度都比日本機器強,這可能是都是台灣或是大陸代工,因為日本人會講情面混熟了會私下放水...
 樓主| 發表於 2011-12-4 12:17:21 | 顯示全部樓層
antlu 發表於 2011-12-4 11:48 AM static/image/common/back.gif
scottwang大;
   佩服你的不服輸精神,也唯有如此才能夠把任務完成, 以我過往的經驗,日本人一般而言只提供 ...

為什麼條碼機故障要親自拿到日本去,而不用寄的呢,一來機器很貴,在當時那台就高達約40~50萬台幣(較便宜的就幾萬塊而已),再來就是想了解他們怎麼修機器,沒想到遇到那種"角色",真的不跟他爭取,實在沒有辦法.

因為那種條碼機很貴,也不可能再買一台,或者做一個治具來修理用,都不可能,所以有問題的,就儘量先判斷是印字頭問題,或者電源問題,或者主機板問題,若能事先判斷的話,可能只是主機板部份有需要用寄的就好了.

德國人的辦事方式,不知是否都差不多,當時的條碼公司,現在無法得知是貿易商或者是製造商,老闆在下訂單時,若是前一批的商品還未出貨,現在若再下一訂單,想要請他們一起出貨,他門的回答是不行,一定要分批出貨,但是他們的技術資料真的很齊全.

日本公司也不一定要給你電路圖,以前公司裡有另外進一些超音波切割機,日本公司就完全不給技術方面的資源,反正有問題就把東西寄過去,光寄來回的費用,還有修理費,每次可能都會超過10000元,最便宜的也要大概6000元,都不知要如何跟客戶拿維修費.
發表於 2011-12-4 15:46:35 | 顯示全部樓層
本帖最後由 banny01 於 2011-12-4 03:47 PM 編輯

to: scottwang

1.如果條碼機是自己由國外引進 可能會有這樣結果 但如找台灣廠商 進口 則要考慮由哪家畜理 還要看你是否找對人  

2. 你所提供的條碼機語言都是點陣式印表機用的 (依你所提供的範例) 並不是專業條碼機語言

3. 所以我之前才一直強調 要知道廠牌及機型  這樣就可找出他相容的條碼機語言

4. 版子有問題 台灣目前大部分 用換版進行修復  像你對電子電路精通 的確可自己維修 前提須有電路圖

歐美戲機器可跟原廠購買維修手冊 但日系可能就要靠老師傅了(死日本鬼子 幹嗎保護自己的技術)  

5.如果是印字頭故障 碰到機器又停產 一般只能換機器 或去大陸找oem不過要有有一定量

 樓主| 發表於 2011-12-4 16:53:24 | 顯示全部樓層
banny01 發表於 2011-12-4 03:46 PM static/image/common/back.gif
to: scottwang

1.如果條碼機是自己由國外引進 可能會有這樣結果 但如找台灣廠商 進口 則要考慮由哪家畜理 ...

>2. 你所提供的條碼機語言都是點陣式印表機用的 (依你所提供的範例) 並不是專業條碼機語言
>3. 所以我之前才一直強調 要知道廠牌及機型  這樣就可找出他相容的條碼機語言

請你把解答全部再看看,我用的方式,只要有提供printer port,一經破解,任何機種都能用,自己也可以用BASIC或C去寫條碼機軟體.
若仍有不明白的,請提出有疑問的地方,我再做補充說明.

>5.如果是印字頭故障 碰到機器又停產 一般只能換機器 或去大陸找oem不過要有有一定量

印字頭的話,一般是找原廠買,不能隨意買,可能無法用.
請問一下,你們所賣的是否有色帶熱轉印的條碼機?
發表於 2011-12-4 23:09:17 | 顯示全部樓層
scottwang 發表於 2011-12-4 12:17 PM static/image/common/back.gif
為什麼條碼機故障要親自拿到日本去,而不用寄的呢,一來機器很貴,在當時那台就高達約40~50萬台幣(較便宜的 ...

"修理費,每次可能都會超過10000元,最便宜的也要大概6000元,都不知要如何跟客戶拿維修費."
  其實這不會很困難!! 因為 維修費要上萬表示機器本來就貴,維修費當然貴(消耗材零件...也貴!),要求廠商要有保固期,保固期內故障當然免費,機器不穩定就會造成廠商的"負擔",機器很穩的話,不易故障,因為是生財工具,硬著頭皮也要修啊!!生產線停擺也不行啊!!
  我買的 ROOMBA 自動吸塵器,一年多換一個電池就要2800,一整台11000,就看你自己決定了...這就是 抉擇!!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-11-21 08:30 PM , Processed in 0.256309 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.