java cups_将数据从java传递到cups过滤器

我正在研究打印系统,需要在每个打印文档中添加任意文本(如作者,文档哈希,一些sysvars等) . 我们使用Java Printing Service(javax.print)作为打印客户端,使用Cups作为服务器 .

Cups有一些称为“过滤器”的文档后处理程序 .

过滤器 - 是一个由Cups推出的程序 . 杯子通过过滤一些参数 - 其中包括"job attributes" .

因此,我决定将自定义属性从java传递到cups并在过滤器中将属性作为文本添加到文档中 . 一切正常,文档被打印,但我没有在过滤器中获取我的属性 . 他们甚至没有被传递到Cups(在包嗅探器中看到它) .

我已经使用getSupportedAttributeCategories()来查看支持的列表(通过打印机?)属性 . 也许我应该以某种方式将我添加到该列表中,但我不明白如何 .

我不仅限于"attributes", I just need to pass arbitary data from java to Cups filter . 我该怎么做?

我的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,

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";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值