我在打印系统上工作,并需要添加任意文本到每个打印的文件(如作者,文件哈希,一些sysvars和其他)。 我们使用Java Printing Service(javax.print)作为打印客户端,并使用Cups作为服务器。
杯子有一些称为“filter”的文件后处理程序。
filter – 是一个程序,将由杯发射。 杯子通过筛选一些参数 – “工作属性”之中。
所以,我决定将自定义属性从java传递给杯子,并将属性添加为文本以在filter中进行文档化。 一切工作无一例外,文件打印,但我没有得到我的属性在filter。 他们甚至没有传递给杯(看到在包嗅探器)。
打印和增加数组值
在没有Windows打印对话框的情况下使用PHP(javascript)在本地打印页面
Java Windows UTF-8(unicode)打印
c ++发送图像到打印机,(PRINT)
从Windows窗体打印的工具
我已经使用getSupportedAttributeCategories()来查看支持(通过打印机?)属性的列表。 也许我应该把这个列表添加到列表中,但我不知道如何。
我不局限于“属性”, 我只需要将任意数据从java传递给Cupsfilter 。 我该怎么做?
我的java代码是这样的:
MyAttrSet attrs = new MyAttrSet(); attrs.add(new MyAttr(42)); attrs.add(new copies(18)); PrintService service = PrintServiceLookup.lookupDefaultPrintService(); DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; Doc doc = new SimpleDoc(is,flavor,null); DocPrintJob job = service.createPrintJob(); job.print(doc,attrs);
filter是一个简单的bash脚本,它打印传递给它的所有东西:
#!/bin/bash echo "All args:" > /tmp/f1.log for var in "$@" do echo "$var," >> /tmp/f1.log done
/tmp/f1.log看起来像:
All args: 87,oroboros,Java Printing,18,<- number of pages is passed! But not MyAttr some useless crap like job uuid and else...
MyAttr:
class MyAttr extends IntegerSyntax implements PrintRequestAttribute { protected MyAttr(int value) { super(value); } public Class<? extends Attribute> getCategory() { // Todo Auto-generated method stub return MyAttr.class; } public String getName() { // Todo Auto-generated method stub return "somemycustop5"; } }
发送prn文件到打印机问题:打印速度非常慢
仿真ZPL打印机
从C#中的Windows服务打印HTML文档,无需打印对话框
python3打印unicode到windows xp控制台编码cp437
你可以使用cups4j
Map attributes = new HashMap(); attributes.put("job-attributes","print-quality:enum:3#media:keyword:iso_a5_148x210mm"); printJob.setAttributes(attributes);
请参阅以下关于如何在Linux上升级CUPS的文章,以打破Java库和CUPS库: http ://www.cups.org/articles.PHP?L433+TFAQ+Q
现在,既然你可以打印,我认为它不是一个问题。 但是我不确定什么是MyAttrSet,它应该是一个HashPrintRequestAttributeSet 。
尝试:
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(new copies(2));
看看这个属性是否被读入,然后尝试添加你的这个集合,它是否工作或不。 你可能想尝试实现其他属性:
“边”属性如下所示:
public class Sides extends EnumSyntax implements DocAttribute,PrintRequestAttribute,PrintJobAttribute { public final Object getCategory() { return Sides.class; } ... }
类似副本:
public final class copies extends IntegerSyntax implements PrintRequestAttribute,PrintJobAttribute
也许尝试添加PrintJobAttribute的附加实现
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。