zhangxdd 发表于 2011-12-01 08:36

GTK开发条码打印

使用的是zebra的条码打印机,怎么将指令发送到打印机,没头绪,请高手们指点一下!谢谢
我是初学者

crazyhadoop 发表于 2011-12-01 09:18

这个问题太笼统了吧。。。

zhangxdd 发表于 2011-12-01 09:35

哦,是的!实在是没头绪呀!

这样,最简单的zebra文档里的一个打印条码的指令组:

^XA
^LH30,30
^FO20,10^AD^FDZEBRA^FS
^F020,60^B3^FDAAA001^FS
^XZ

我现在要把这些指令发送到我的条码打印机,打印机是usb接口的,
在C程序里,我应该怎么做?

谢谢回复

crazyhadoop 发表于 2011-12-01 09:46

回复 3# zhangxdd


    看看zebra文档怎么和C交互吧~ 没用过。。

zhangxdd 发表于 2011-12-01 10:54

zebra文档里只是说把这些指令保存为一个文件,然后发到打印机(原文:Save this file on your computer’s harddrive, name it “EXER1.ZPL.”
Copy the file to the printer)

    为了验证这个,我在终端窗口直接用命令把文件发送到打印机:
         lp -d zebra_888-tt EXER1.zpl
    打印机动作了,但只是打出文件的指令内容,并不是实际条码


所以,我想试试在程序里把指令一条条的发送给打印机,网上好难找到有关linux下打印的。

在接上该打印机后,/dev目录下多了一个usb目录,一个usblp0的链接,链接是指向usb目录里的lp0文件名
然后我用下面的代码:
int fd = open("lp0",'a');
char s="^XA^LH30,30^FO20,10^AD^FDZEBRA^FS^F020,60^B3^FDAAA001^FS^XZ";
write(fd,s,sizeof(s));
close(fd);
在第一行代码这里返回-1,失败。
使用"usblp0"代替"lp0"也一样

zhangxdd 发表于 2011-12-01 11:43

发现:
int fd = open("lp0",'a');
只是在调试目录里建立了一个叫lp0的文件,

怎么样才能打开一个打印机描述符呢?

tiaoma100 发表于 2014-07-09 17:12

不错的条码生成知识,好帖

liangmian1 发表于 2014-07-15 15:20

不错的条码识别知识,学习一下

weltion 发表于 2014-08-01 20:14

用串口编程吧,直接往串口发指令就可以操控打印机了
页: [1]
查看完整版本: GTK开发条码打印