Unix环境与PostScript打印机交互

需积分: 0 2 下载量 105 浏览量 更新于2024-07-31 收藏 895KB PDF 举报
"Unix环境高级编程,讲解如何与PostScript打印机进行通信" 在Unix环境中,与PostScript打印机通信是一项重要的任务,因为PostScript打印机以其高质量的打印效果和广泛的兼容性而被广泛使用。这一章节主要围绕如何编写程序来与这类打印机进行有效交互。 17.1 引言 在这一部分,作者指出程序可以通过RS-232串行端口与PostScript打印机建立连接,利用Unix系统提供的终端I/O函数,如第11章中介绍的,来实现通信。同时,由于通信过程是全双工的,即同时进行发送和接收,所以可以利用12.5节讨论的I/O多路转接函数,如`select`和`poll`,来监控打印机的状态和读取反馈消息。这个程序的原型是James Clark编写的`lpwrps`,它属于lprps软件包的一部分,可在特定的新聞组中找到。 17.2 PostScript通信机制 了解PostScript通信的关键在于认识到发送到打印机的不是简单的打印文件,而是PostScript语言的程序,这个程序会被打印机内置的PostScript解释器执行,生成最终的打印输出。如果PostScript程序存在错误,打印机将返回错误消息,并可能伴随着其他输出。 以下是一个简单的PostScript程序示例,它会在打印页面上显示字符串“hello,world”: ``` %! Times-Roman findfont 15 scalefont %设置字体大小为15 setfont %设置当前字体 300 350 moveto %定位到页面上的位置 (x=300, y=350) (hello,world) show %输出字符串 ``` 这个例子展示了基本的PostScript编程结构,但章节的重点是探讨与PostScript打印机的通信细节,而非深入PostScript语言本身。 在实际应用中,程序需要处理包括错误处理、数据传输速率控制、打印机状态查询等复杂问题。例如,程序可能需要检查打印机是否已准备好接收数据,或者在发送大量数据时适时暂停以避免缓冲区溢出。此外,还可能涉及PostScript程序的预处理,如转换非PostScript格式的文档为PostScript代码。 与PostScript打印机通信涉及Unix系统的低级别I/O操作,理解并掌握这些技术对于编写能够高效、可靠地与这些设备交互的应用至关重要。这包括正确设置通信参数,处理打印机的反馈,以及有效地发送和接收PostScript指令流。通过学习这一章节,开发者可以构建出更强大和灵活的打印解决方案。