窗口 – 如何将数据发送到现代打印机? PDF,PostScript,HPGL等
我正在努力了解我通过打印机以编程方式与应用程序软件打印的选项.换句话说,当用户告诉我们的应用程序想要打印某些东西时会发生什么.我明白了“旧时代”的工作方式,并且试图了解更加复杂的现代世界.
在过去,有两种主要类型的打印机:惠普打印机,了解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代码,请将其传递到打印机进行打印”?
实际上,真相在你所描述的两个极端之间的中间位置有点多. >这是真的:与PostScript不同,PDF不是一种编程语言(更不用说一个图灵完整的),你不能定义“循环”. 关于你的其他几点: >不,从来没有两种类型的打印机,HPGL和PostScript.
不要以为“设备上下文”这个术语意味着Windows直接与打印机硬件通话,以便查询功能并请求设备上下文.有时候它有时候会有的.它总是依赖于一些称为“打印机驱动程序”的软件(也可以控制哪种打印机语言打印数据应该被转换).打印机驱动程序可能能够查询设备,并询问“您有双工器单元吗?您有装订设备吗?”然后为作业生成所需的设备上下文本身. IPP Everywhere开发的非常现代化的方法IPP Everywhere将能够摆脱老式打印机驱动程序所要做的大部分工作,并将主要依靠直接询问设备,无限制地“完成要传递到物理设备的确切打印数据. 但IPP Everywhere尚未广泛流行,与供应商,管理员以及用户无关.但是,一旦PC被遗忘,95%的计算设备将被超级移动… >短读:IPP Everywhere FAQ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 无法投射COM对象 – Microsoft Outlook和C#
- windows-8 – 如何在Windows应用商店应用中实现耗材?
- windows-server-2003 – 有没有办法在没有域控制器的情况下
- Windows上的系统调用本身是否比Linux慢?
- Powershell – 使用Powershell对Azure AD应用程序执行“授予
- 如何通知Windows服务(c#)的DB Table Change(sql 2005)?
- windows-server-2012 – 远程桌面服务安装/执行模式
- windows – 警告:找不到条目符号nable-stdcall-fixup;违约
- windows – 如何在C/C++程序中使用静态地址?
- Windows – 无法启动Git Bash