use*_*242 5 java printing xps windows-8 windows-8.1
较新的XPS打印驱动程序(几乎所有Windows 8打印驱动程序)都需要DOCINFO.pDataType ="XPS_PASS"(而不是"RAW")来管理原始打印作业(Postscript/PCL/ZPL/etc).
(使用VC++将Postscript文档发送到打印机)
(如何使RawPrinterHelper在XPS_PATH和RAW数据类型中都能工作?)
除了使用像JNA之类的东西,有没有办法在Java applet /应用程序中执行此操作?
我可以使用JNA,并计划将其用于打印机管理,但我宁愿实际打印不必深入研究JNA - Win32 API领域.
注意:我还想避免直接管道到9100,串口等.使用已检测/配置的打印机更有意义.
解决方法:我已成功使用JNA和JOB_INFO发送"XPS_PASS".可以使用PRINTER_INFORMATION_4和DOCINFO_4/DOCINFO_8(自己实现结构)来检测是否应该发送XPS_PASS或RAW.请参阅C++示例
JNI是目前唯一的选择。可能应该作为错误报告提交给 Java 问题跟踪器。
JDK8源: http: //hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/windows/native/sun/windows/WPrinterJob.cpp#l999
不幸的是,这是不可能的,因为 DOCINFO.pDataType 被硬编码为“RAW”,并且 JVM 中似乎没有任何其他打印入口点。
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |