在vfp中如何控制打印機來打印條碼?

magnetmoon 2003-08-22 03:04:39
在vfp中條碼已經生成,但沒法控制打印機,不知能否打印?如何打印?
或者通過別的方法(第三方控件等等)也行,
請大蝦不吝賜教,分不夠再送!
代碼如下:
...
比如:
BCSTR='10101110110001001001000101111010100111001001101010111001010011101001110101110011100101101100101'
?????往下如何寫代碼

可以參考以下VB的代碼:
...
Printer.DrawWidth = 1
Printer.ScaleMode = vbTwips
Dim x As Integer
x = Printer.ScaleX(intXPos, vbMillimeters, vbTwips)
Dim y As Integer
y = Printer.ScaleY(intYPos, vbMillimeters, vbTwips)
Dim intheight As Integer
intheight = Printer.ScaleY(intPrintHeight, vbMillimeters, vbTwips)
For i = 1 To Len(BCSTR)
bcd = Mid(BCSTR, i, 1)
Select Case bcd
Case "0"
'Form1.Line (50 + i*100, 50)-Step(1*100, 100), , BF
Case "1"
Printer.Line (50 + i * 18.5, 50)-Step(18.5, 1000), , BF
End Select
Next i


...全文
400 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
st_2000 2003-08-27
  • 打赏
  • 举报
回复
怎么了这是?

我直接把BC39字体文件拷到font目录下,就行了。只要把变量/字体的属性设成BC39的字体就可以啊,打印、扫描都没问题啊。
magnetmoon 2003-08-27
  • 打赏
  • 举报
回复
看來沒人回答了,該結貼了!
magnetmoon 2003-08-26
  • 打赏
  • 举报
回复
up
紫焰月读 2003-08-26
  • 打赏
  • 举报
回复
觉得还是用字库比较合适,处理起来也较方便
magnetmoon 2003-08-25
  • 打赏
  • 举报
回复
請樓下的繼續......
mgan 2003-08-23
  • 打赏
  • 举报
回复
呵 自己看着写把

——————————@_@————————
good good study
day day up
___________________^@^_________________
magnetmoon 2003-08-23
  • 打赏
  • 举报
回复
謝謝!
以上是39條碼的,有沒有EAN-13條碼的
mgan 2003-08-22
  • 打赏
  • 举报
回复
太长了看我的网站去把
http://web.5inet.cn/xiaogen/0009.htm
mgan 2003-08-22
  • 打赏
  • 举报
回复
以下是我以前做的一個在FOXPRO的FORM調用REPORT中實現列印條碼功能(主要是39條碼),
現在將代碼共享給大家,希望能給各位帶來幫助!

1. 首先將字体文件C39HDW3.TTF拷貝到你的電腦的FONTS目錄下.
2. 在窗体FORM中新增加兩個程序BC_CODE39和BC_OCODE39
3. 程序BC_CODE39的內容是:
Parameters m
rtnp = THISFORM.BC_OCode39(m,"Basic",0)
return rtnp
4. 程序BC_OCODE39的內容是:
Parameters m,full,check
private t,x,p,cval,chktot
set talk off
if type('m')<>"C"
return ""
endif
*** verify full parameter
if type('full')<>"C"
full = "BASIC"
cval = 2
else
full = upper(full)
if full<>"FULL"
full = "BASIC"
cval = 2
else
cval = 3
endif
endif

*** verify check parameter
if type('check')<>'N'
check = 0
else
if check <> 1
check = 0
endif
endif

*** Check to see if user added stop/start
*** character and returns null if true
if at("*"," "+m)>1
return ""
endif

*** decode message into bar code character pattern and place
*** it into the variable

* initialize the output string and add the start code to it
p="*"

* Dimension the conversion array
dimension cvtarr[4,128]

* Define the conversion array
cvtarr[1,1]=chr(0)
cvtarr[2,1]=""
cvtarr[3,1]="%U"
cvtarr[4,1]=0
cvtarr[1,2]=chr(1)
cvtarr[2,2]=""
cvtarr[3,2]="$A"
cvtarr[4,2]=0
cvtarr[1,3]=chr(2)
cvtarr[2,3]=""
cvtarr[3,3]="$B"
cvtarr[4,3]=0
cvtarr[1,4]=chr(3)
cvtarr[2,4]=""
cvtarr[3,4]="$C"
cvtarr[4,4]=0
cvtarr[1,5]=chr(4)
cvtarr[2,5]=""
cvtarr[3,5]="$D"
cvtarr[4,5]=0
cvtarr[1,6]=chr(5)
cvtarr[2,6]=""
cvtarr[3,6]="$E"
cvtarr[4,6]=0
cvtarr[1,7]=chr(6)
cvtarr[2,7]=""
cvtarr[3,7]="$F"
cvtarr[4,7]=0
cvtarr[1,8]=chr(7)
cvtarr[2,8]=""
cvtarr[3,8]="$G"
cvtarr[4,8]=0
cvtarr[1,9]=chr(8)
cvtarr[2,9]=""
cvtarr[3,9]="$H"
cvtarr[4,9]=0
cvtarr[1,10]=chr(9)
cvtarr[2,10]=""
cvtarr[3,10]="$I"
cvtarr[4,10]=0
cvtarr[1,11]=chr(10)
cvtarr[2,11]=""
magnetmoon 2003-08-22
  • 打赏
  • 举报
回复
最好还是有条码的字库,比如ECC128码的字库,但我到现在还是没有找到,所以只有买专门的条码打印机,然后使用相关的DLL调用函数打印,其实后一种方法才是正路,因为扫码枪只有扫碳带打印的标签正确率才能保证。

謝謝: iceli(ace)
我用vb寫的程序,用普通的噴墨打印機就可以打印条码,并且用条码掃描儀可以正確讀取,
因此不一定‘只有扫碳带打印的标签正确率才能保证’
現在想改用vfp寫,不知道如何進行???




iceli 2003-08-22
  • 打赏
  • 举报
回复
最好还是有条码的字库,比如ECC128码的字库,但我到现在还是没有找到,所以只有买专门的条码打印机,然后使用相关的DLL调用函数打印,其实后一种方法才是正路,因为扫码枪只有扫碳带打印的标签正确率才能保证。

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧