• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

UNIX下实现终端打印的几种方法

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 27次 | 进入软件测试论坛讨论

领测软件测试网
人民银行鞍山市中心支行 那世康 刘春悦
--------------------------------------------------------------------------------



目前,国内银行业大部分计算机应用系统都在UNIX操作系统平台上采用终端业务数据录入、业务数据打印方式进行前端业务处理。笔者将UNIX下实现终端打印的几种方法介绍如下: 
一、概述
   UNIX环境下终端打印是在操作系统的支持下,使用终端自身提供的功能,用命令或程序实现终端打印。具体过程是:在终端上执行打印控制命令使终端进入打印状态,并通知打印机做好准备,在终端上输入要打印文件的文件名进行打印。打印完毕,在终端上执行打印控制命令使终端退出打印状态。 
二、打印方法
   1.用终端自身提供的热键功能实现打印。各种类型终端都为用户提供了打印热键,只要按一下打印热键终端就进入了打印状态,一般用cat命令查看要打印文件的文件名即可打印,打印完毕,再按一下打印热键就可退出打印状态。如HT-382系列终端的拷贝打印热键是Ctrl-F2。 
   2.用shell命令实现终端打印。UNIX操作系统提供了交互式的解释命令语言shell,可以方便地实现终端打印。首先找到终端打印的控制命令,还以HT-382系列终端为例,进入拷贝打印控制命令是ESC[5i,退出拷贝打印控制命令是ESC[4i。可用vi编辑一个shell命令打印文件如下: 
   ECHO ‘ESC[5i’ #终端进入打印状态
   CAT   $1     #打印文件
   ECHO ‘ESC[4i’ #终端退出打印状态
   在终端上或在程序中执行此shell打印命令,后面跟要打印文件的文件名即可打印。
   3.用C语言实现终端打印。同样以HT-382系列终端为例,用C语言编写终端打印程序如下: 
   #include <stido.h>
   main(argc,argv)
   int argc; 
   charargv[] 
   {
   char n;
   printf(“\033\[\5\i”); 
/终端进入打印状态/
   sprintf(n“cat%s”,argv[0]);
/送入打印文件名/
   system(n);/打印文件/ 
   printf(“\033\[\5\i”);
/终端退出打印状态/
   }
   在使用中只需在此程序后面跟要打印文件的文件名即可打印。
三、几点注意
   1.终端打印前要将终端设置项中打印机类型项设置为与终端连接打印类型一致。
   2.终端打印可以依业务要求选择屏幕打印(只打印屏幕显示内容)、拷贝打印(边打印边显示文件内容)、透明打印(只打印,不显示文件内容)。
   3.shell打印命令中,转义字符ESC的编辑写入要先按CTRL-V键,再按ESC键方可写入。
   4.C语言打印程序中,控制字符要用8进制书写,并且前面加转义字符“\”。如ESC的8进制ASCII代码为33,程序中写做“\033”。

《中国金融电脑》2001年第5期

 quil 回复于:2003-03-11 21:00:48
针对AR-5400凭证打印机,还有什么其他的设置吗?

还有那个^\ 怎么在字符下输入?

 xtnx-wb 回复于:2003-03-20 16:37:45
有一个小问题
在同一台计算机上带有两个终端分别为tty6a和 tty6b
在tty6a上装有打印机,在tty6a上进入root可以打印文件
现在想在tty6b使用连接在tty6a上的打印机来打印文件,
该用什么命令来打印呢?
谢谢!
其中系统装的是SCO OPEN5.05

 oapthyok 回复于:2003-03-20 16:42:27
在cat命令后加上设备指向:cat 打印文件〉/dev/tty6a,其他相同。

 sdccf 回复于:2003-03-20 16:43:20
用cat命令把输出定向到tty6a上,注意加终端透明打印的控制代码。

 wangnb 回复于:2004-02-28 16:33:24
ECHO ‘ESC[5i’ #终端进入打印状态 
   CAT   $1     #打印文件 
   ECHO ‘ESC[4i’ #终端退出打印状态 
   用这段SHELL  控制终端打印无法自动退纸,如何解决?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网