问题描述
当前,它将在Windows假脱机队列中显示N / A为页面数,这是否可以显示页面数以及使用双向支持打印的页面是什么?这个文件格式?当然,打印机本身必须知道要打印的页面/已经打印了多少页。谢谢。
解决方法
我只能回答此问题的PostScript部分,而不能回答Windows后台打印队列。我不知道您如何将PostScript插入到假脱机队列中,但是假设您是从应用程序进行打印,那么我非常朦胧的内存表明,是由应用程序声明作业中的页数。
打印机不知道PostScript程序包含多少页。实际上,在最一般的情况下,无法确定PostScript程序将执行showpage
运算符的次数。这是因为PostScript是一种编程语言,并且该程序在不同的解释程序或不同的条件下可能执行不同。例如,它可能在星期二打印额外的页面。
或者举一个公认的愚蠢的例子:
%!
0 1 rand {
showpage
} for
那应该打印随机数量的空白页面。
有些约定可以指示PostScript程序预期要执行多少页,Document Structuring Convention包含注释,这些注释告诉PostScript处理器(不是PostScript解释器,后者会忽略注释,处理器将PostScript视为数据,不执行),其中有多少页,以及其他数据,例如请求的媒体尺寸,字体等。
并非所有的PostScript程序都包含此信息,有时提取它可能很尴尬(“ atend”值特别令人讨厌,它迫使处理器读取文件的末尾以找到该值)。另外,人们已经知道像Lego Bricks这样对待PostScript程序,并将它们串联在一起,这使得开始时的评论不可信。如果第一个程序具有%% Pages: (atend)
大多数打印机确实执行作业服务器循环,这意味着即使他们不知道将要打印多少页,也可以跟踪它们正在执行的页面。
在具有双向接口的打印机上运行的PostScript程序当然也可以实现可以,将信息发送回打印后台处理程序,但不能保证打印机具有双向通信接口,并且在将此类信息发送回计算机时,打印机没有遵循的标准。它应该发送什么? Windows是否与Mac一样?