PB 与斑马S4M 打印机!打印汉字。

user_me 2010-02-10 04:30:00
我想用pb做个打印程序, 打印机是斑马S4M;
因为S4M打印不了汉字,其它都正常。

我弄了一天,打印出来的却是空白!!!
还请有做过的帮帮忙!我这程序该怎么写??
怎么才能打出汉字!

代码如下:

function int GETFONTHEX(string outstr,string fontname,&
long orient,long height,long width,long bold,long italic,&
ref string hexbuf) library "fnthex32.dll"
string sString,sPrint
Integer li
String ls_hex
ls_hex = space(21 * 100)
li = GETFONTHEX("汉字",'宋体',1,20,30,1,1,ls_hex) //转换为HEX编码

mle_show.text=ls_hex //将HEX编码显示到mle_show控件

//////////////////////////////////////////////////
long job

job=printopen()

mle_show.print( job,0,0) //打印

printclose(job)
...全文
264 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Graves 2011-05-29
  • 打赏
  • 举报
回复
看看。 一直没找到具体资料
user_me 2010-02-11
  • 打赏
  • 举报
回复
引用 4 楼 happyflystone 的回复:
Assembly codels_hex = space(21 * 100)
li = GETFONTHEX("汉字",'宋体',1,20,30,1,1,ls_hex) //转换为HEX编码
string ls_print
ls_print = "^XA^IA6^XZ^FS^XA^FS^BY3,3^LH20,23^FS"
ls_print += "^FO30,25^B8,70^FD6905460000130^FS"
ls_print += mid(ls_hex,1,li)
ls_print =ls_print + '^FO10,140^XGOUTSTR01,1,2^FS'
ls_print += "^PQ1^FS"
ls_print += "^PRC^FS^XZ^FS^XA^EG^XZ"
int li_filhle
li_filhle=FileOpen("LPT1"/*打印端口*/,linemode!,write!,lockwrite!,replace!)
if li_filhle= -1 then
Messagebox("警告","条码打印设备打开失败!",StopSign!)
Return
end if
FileWrite(li_filhle,ls_PrtStr)
FileClose(li_filhle)


请问ls_PrtStr这个变量是从哪来??
pcwe2002 2010-02-11
  • 打赏
  • 举报
回复
你的条码类型不支持汉字
WorldMobile 2010-02-11
  • 打赏
  • 举报
回复
SM4是条码专用打印机,可能不支持汉字打印,建议咨询一下厂家
wsz0812 2010-02-11
  • 打赏
  • 举报
回复
回来看看....................
-狙击手- 2010-02-10
  • 打赏
  • 举报
回复
ls_hex  =  space(21  *  100)    
li = GETFONTHEX("汉字",'宋体',1,20,30,1,1,ls_hex) //转换为HEX编码
string ls_print
ls_print = "^XA^IA6^XZ^FS^XA^FS^BY3,3^LH20,23^FS"
ls_print += "^FO30,25^B8,70^FD6905460000130^FS"
ls_print += mid(ls_hex,1,li)
ls_print =ls_print + '^FO10,140^XGOUTSTR01,1,2^FS'
ls_print += "^PQ1^FS"
ls_print += "^PRC^FS^XZ^FS^XA^EG^XZ"
int li_filhle
li_filhle=FileOpen("LPT1"/*打印端口*/,linemode!,write!,lockwrite!,replace!)
if li_filhle= -1 then
Messagebox("警告","条码打印设备打开失败!",StopSign!)
Return
end if
FileWrite(li_filhle,ls_PrtStr)
FileClose(li_filhle)
youzhi1007 2010-02-10
  • 打赏
  • 举报
回复
ls_Buf = SPACE(21 * 1024) // 分配存储16进制数据空间
ll_Count = GetFontHex ( ls_ah, '宋体', 0 , 35, 0, 1, 0, ls_buf) //需要 Fnthex32.DLL
IF ll_Count <= 0 then ls_ah = ""
ls_ah = mid(ls_Buf,1,ll_Count)
ls_ah = ls_ah + '^FO5,150^XGOUTSTR01, 1,1^FS' //x,y

ls_1 = "^XA~r~n" +&
"^LH90,15^BY2.4,2.5,180~r~n" +&
"^FO3,0^BCN,110,N,N,N^FD" + taom + "^FS~r~n" +&
"^FO1,115^ADN,30,15^FD" + taom + "^FS~r~n" + &
ls_ah + "^XZ"

/*
tmprinter =\\计算机名\共享打印机名
本级不用配置fymis.ini
*/
ls_port = profilestring(g_ini_file,"print",'tmprinter',"LPT1")
li_filename=FileOpen(ls_port,linemode!,write!,lockwrite!,replace!)
if li_filename = -1 then
Messagebox("警告","条码打印设备打开失败!",StopSign!)
end if
FileWrite(li_filename,ls_1)
FileClose(li_filename)
glint 2010-02-10
  • 打赏
  • 举报
回复
这是一个TSC打印机提供的DLL,用这些API就可以完成多有功能,你应该找找斑马的开发文档

Function long openport (string a) library"tsclib.dll"
Function long closeport () library"tsclib.dll"
Function long setup (string a, string b, string c ,string d, string e, string f, string g) library "tsclib.dll"
Function long clearbuffer () library"tsclib.dll"
Function long barcode (string ss1, string ss2, string ss3, string ss4, string ss5, string ss6, string ss7 ,string ss8, string ss9) library"tsclib.dll"
Function long printlabel (string ss1, string ss2) library"tsclib.dll"
Function long windowsfont (long a, long b, long c, long d,long e ,long f, string g ,string h) library "tsclib.dll"
Function long printerfont(string a,string b,string c,string d,string e,string f,string g) library "tsclib.dll"
Function long sendcommand (string a) library"tsclib.dll"
Function long formfeed () library"tsclib.dll"
Function long nobackfeed() library"tsclib.dll"
Function long downloadpcx (string filename,string imagename) library"tsclib.dll"
glint 2010-02-10
  • 打赏
  • 举报
回复
你这个办法肯定不行,因为你通过WINDOWS驱动方式打印,打的又是一个ls_hex字符串,那肯定打印出来的不会是汉字,而是这个字符串本身,建议你去查看这个打印机的开发文档,一般条码打印机不会不能支持汉字的,是不是该换个驱动

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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