Java 原始 Postscript 打印,发送 XPS_PASS(Windows 具体)
Java raw Postscript printing, sending XPS_PASS (Windows specific)
较新的 XPS 打印驱动程序(几乎所有 Windows 8 打印驱动程序)需要 DOCINFO.pDataType = "XPS_PASS"(而不是 "RAW")来传输原始打印作业(Postscript/PCL/ZPL/etc).
(Send Postscript Document to Printer using VC++)
(How to make RawPrinterHelper work in both XPS_PATH and RAW data types?)
除了使用像 JNA 这样的东西,有没有办法在 Java applet/application 中做到这一点?
我可以使用 JNA,并计划将其用于打印机管理,但我宁愿实际打印不必深入 JNA - Win32 API 领域。
注意:我还想避免直接连接到 9100、串行端口等。使用已经 detected/configured 台打印机更有意义。
解决方法:我已成功使用 JNA 和 JOB_INFO 发送 "XPS_PASS"。可以使用 PRINTER_INFORMATION_4 和 DOCINFO_4/DOCINFO_8(自己实现结构)来检测是否应该发送 XPS_PASS 或 RAW。请参阅 C++ 示例
JNI 是目前唯一的选择。应该作为错误报告提交给 Java 问题跟踪器。
不幸的是,这是不可能的,因为 DOCINFO.pDataType 被硬编码为 "RAW",并且在 JVM 中似乎没有任何其他打印入口点。
较新的 XPS 打印驱动程序(几乎所有 Windows 8 打印驱动程序)需要 DOCINFO.pDataType = "XPS_PASS"(而不是 "RAW")来传输原始打印作业(Postscript/PCL/ZPL/etc).
(Send Postscript Document to Printer using VC++)
(How to make RawPrinterHelper work in both XPS_PATH and RAW data types?)
除了使用像 JNA 这样的东西,有没有办法在 Java applet/application 中做到这一点?
我可以使用 JNA,并计划将其用于打印机管理,但我宁愿实际打印不必深入 JNA - Win32 API 领域。
注意:我还想避免直接连接到 9100、串行端口等。使用已经 detected/configured 台打印机更有意义。
解决方法:我已成功使用 JNA 和 JOB_INFO 发送 "XPS_PASS"。可以使用 PRINTER_INFORMATION_4 和 DOCINFO_4/DOCINFO_8(自己实现结构)来检测是否应该发送 XPS_PASS 或 RAW。请参阅 C++ 示例
JNI 是目前唯一的选择。应该作为错误报告提交给 Java 问题跟踪器。
不幸的是,这是不可能的,因为 DOCINFO.pDataType 被硬编码为 "RAW",并且在 JVM 中似乎没有任何其他打印入口点。