在过去,有两种主要类型的打印机:惠普打印机,了解HPGL和Postscript打印机.所以,您可以使用这两种语言发送打印机,打印机会将您的代码转换为页面上的点.您也可以将位图作为二进制数据嵌入.例如,在HPGL(或PCL)中,您可以给出一个基本上说“请打印此位图,这里是栅格数据”的命令,后跟一个巨大的二进制数据.显然,如果你这样做,打印机的数据量会更多,可能会阻塞打印机.后记具有相同的能力.如果您打印文本,可以告诉打印机在“TimesNewRoman”(或任何)字体中打印文本“xyz”,打印机将为您计算所有点(这意味着打印机必须知道该字体,或者您必须下载字体到打印机提前).
现在,据了解,PDF格式与Postscript类似,但它不是像Postscript那样的语言,只能包含“对象”.所以,例如,在Postscript中,你可以循环并说出“打印这个圈子50,000次”,移动它的确切位置.在PDF中,我的理解是你不能这样做,你必须将每个圈子指定为一个单独的“对象”.
那么现代打印机怎么工作?还可以将HPGL / PCL发送到打印机吗?现在所有打印机现在都在Postscript上标准化了吗?如果是这样,这是否意味着我最好的选择是生成Postscript,然后将其发送到打印机?如果我发送Postscript,我必须以某种方式告诉打印机这是Postscript吗?
在Windows中,我知道打印的“标准”方式,即查询设备功能并请求设备上下文,然后可以在该上下文中使用Windows调用绘制线条,形状和文本.然而,与Postscript(或HPGL / PCL)相比,显然这是非常原始的.有没有办法可以直接与打印机驱动程序通信,或者告诉Windows:“这里是我的Postscript代码,请将其传递到打印机进行打印”?