我想要将纯文本(可能是cp1252或Windows正在使用的任何内容)打印到特定的打印服务。听起来很简单,对吧?但成功似乎强烈依赖于您使用的打印机类型。使用javax.print打印纯文本API
我有三种不同的打印机可用。一个是HP LaserJet(普通打印机),一个是免费PDF(虚拟PDF打印机),另一个是Tobit Faxware(虚拟传真服务 - 这是我想要打印的内容)。
根据支持的doc风格,none均不提供“text/plain”或任何其他“text”格式。
当我使用DocFlavor.URL.AUTOSENSE
打印时,HP打印机将正确打印文本,但其他两个将默默失败。由于“文本”DocFlavors不受支持,我无法给打印机提供除“自动感应”之外的更多提示。
当使用Windows'记事本打印文件时,它对所有三台打印机都正常工作。差异似乎是我打印“RAW”数据,而记事本使用“NT EMF 1.008”。
有什么办法让我使用java PrintService工作吗?
图片借来不会起作用,因为传真打印驱动程序扫描关键字输出。 – Stroboskop 2011-03-21 08:39:42
其实......我注意到有时会在PrintJob中“绘制”一个文本,使用drawString会导致您可以标记文本(使用FreePDF作为打印机)。但它不能一直工作,因为大部分时间组件将被图像切片中的PrintJob切断,然后没有文本。 我还没有找出何时使用哪种方法。 – Stroboskop 2017-05-30 13:02:52