当前位置: 技术问答>linux和unix
请问如何在Unix C程序中使用打印控制码?(已有打印机使用手册)
来源: 互联网 发布时间:2016-04-01
本文导语: 比如,单位有一台 star nx 600 打印机,有时用手册,上面有打印控制码。 打印机连的是一台国光终端机。 我在服务器上把程序写好(UNIX下C语言),将需要打印的信息生成了一个文件。 在终端机上选择打印出文件...
比如,单位有一台 star nx 600 打印机,有时用手册,上面有打印控制码。
打印机连的是一台国光终端机。
我在服务器上把程序写好(UNIX下C语言),将需要打印的信息生成了一个文件。
在终端机上选择打印出文件。
但是,由于每一行的信息太多,字体和字间距也较大,导致一行的内容打印在纸上变成了两行。虽然换成star AR3200 II打印机可以正常打印出来,但是,我想在程序里进行控制。因为,银行的其他网点都是NX600这种类型的小打印机。
现在有两个问题:
1、使用手册上的打印控制码是16进制的,如控制码表中有一条为:
名称 代码 功能
FS S n1 n2 1C 53 n1 n2 设定中文字符左,右空点
n1为左空,哪为右空,每点=1/180英寸
控制码1C 53 n1 n2,我在程序里试过这样写,将16进制的代码1C 53转换为8进制:printf("33123 1 1");
但是发现不行,后面的两个参数 1 1,直接被打印到了纸上。请问这些控制码是怎么用的?
2、通过打印控制码是否可以像word里面那样调整字体大小,如果不能,是否有可替代的方法?比如倍宽打印是否可以调整字符的横向宽度?
我在网上也搜了两天,都没有比较清晰的解决方法。这里先谢谢了
PS:第一次发帖,不知道30分多还是少,如果太少,我再++ :)
打印机连的是一台国光终端机。
我在服务器上把程序写好(UNIX下C语言),将需要打印的信息生成了一个文件。
在终端机上选择打印出文件。
但是,由于每一行的信息太多,字体和字间距也较大,导致一行的内容打印在纸上变成了两行。虽然换成star AR3200 II打印机可以正常打印出来,但是,我想在程序里进行控制。因为,银行的其他网点都是NX600这种类型的小打印机。
现在有两个问题:
1、使用手册上的打印控制码是16进制的,如控制码表中有一条为:
名称 代码 功能
FS S n1 n2 1C 53 n1 n2 设定中文字符左,右空点
n1为左空,哪为右空,每点=1/180英寸
控制码1C 53 n1 n2,我在程序里试过这样写,将16进制的代码1C 53转换为8进制:printf("33123 1 1");
但是发现不行,后面的两个参数 1 1,直接被打印到了纸上。请问这些控制码是怎么用的?
2、通过打印控制码是否可以像word里面那样调整字体大小,如果不能,是否有可替代的方法?比如倍宽打印是否可以调整字符的横向宽度?
我在网上也搜了两天,都没有比较清晰的解决方法。这里先谢谢了
PS:第一次发帖,不知道30分多还是少,如果太少,我再++ :)
|
为什么要换成8进制?直接用16进制不行吗?要求不是16进制控制码吗?
字体大小及宽度调整其实是需要字体库文件支持的,并不是简单的放大缩小。能否通过打印控制码实现,必须看打印机是否提供这样的控制功能。不是有使用手册吗?
字体大小及宽度调整其实是需要字体库文件支持的,并不是简单的放大缩小。能否通过打印控制码实现,必须看打印机是否提供这样的控制功能。不是有使用手册吗?