搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 操作系统 > linux > linux编程
 1         
1楼  chengzhong1984 2009-3-4 18:38

在工作中碰到这样的问题
打印文件时需要控制针式打印机的字符大小
原本的程序(大约有几十万行)控制方法如下

用一个宏,FP16,这个宏是用fprintf在文件头输入控制码^[u1(让打印机使用压缩字体)
然后其他一堆程序,输入文件内容
再使用一个宏,FP24,这个宏也是使用fprintf在文件尾输入控制码^[u2(恢复原来的字体)

对于不需要压缩字体的文件,则正常输入文件

然后,调用系统命令 lp,打印上述生成的文件,打印命令的时候控制码被打印机识别
就可以自动在打印过程中变化字体的大小


但是现在碰到一个新的问题,因为买入了新的高速行式打印机,控制码改变了
FP24的控制码是1c 43 00 03(十六进制)于是使用lp的时候,lp碰到00的时候认为文件已经结束,于是这个控制码就无法执行,以至于打印了压缩字体后正常的文档也用压缩字体打印

我查了网上的资料,发现一般的控制方法是直接echo  "\x1c\x43\x00\x03" > dev/lp0
上,这个办法的确可以用,但是问题就在于我要打印的文件很多,不可能手动控制大小

即使使用脚本,对于lp这样会维护一个队列的命令来说,也会造成错误,
所以我目前看到可以解决的方案是修改lp的源码,当他碰到1c 43 00 03时直接发送给打印


所以我想问一下哪里可以找到lp的源码以及运行原理等资料,多谢



2楼  emmoblin 2009-3-4 23:22

在linux要想知道哪个程序的源代码得查找lp是属于哪个包的。然后下载哪个包的源代码。



 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题: 如何修改打印命令lp
热门关注
标题回复点击
[保留]7666
man page3487
error: expected `,' or `...' before numeric constant是什么错误啊???4453
application/zip和application/x-zip-compressed是什么格式啊? 谢谢3394
LINUX应用程序开发指南 下载91394
急:在非 socket 上进行了 socket 操作?1367
linux编程到底要不要学C++38303
shell脚本问题29275
请问<sys/types>这些头文件怎么安装--在线等25274
c函数2248
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源