java怎么实现打印机监控 -凯发k8国际

0 0

java怎么实现打印机监控15

实现目标:
1、可以测试打印机是否连接
2、监控打印机的状态:打印机缺纸、打印机卡纸
我从printservice里获取printerstatereasons,可是总是为空。不知道怎么才能获取到打印机的printerstatereasons
import java.awt.color;
import java.awt.graphics;
import java.awt.graphics2d;
import java.awt.print.pageformat;
import java.awt.print.printable;
import javax.print.doc;
import javax.print.docflavor;
import javax.print.docprintjob;
import javax.print.printexception;
import javax.print.printservice;
import javax.print.printservicelookup;
import javax.print.simpledoc;
import javax.print.attribute.hashprintrequestattributeset;
import javax.print.attribute.printrequestattributeset;
import javax.print.attribute.printserviceattributeset;
import javax.print.attribute.standard.mediaprintablearea;
import javax.print.attribute.standard.printerstatereasons;
import javax.print.event.printjobevent;
import javax.print.event.printjoblistener;
import javax.print.event.printserviceattributeevent;
import javax.print.event.printserviceattributelistener;
import com.insigma.afc.common.loghelper;
public class textprinter implements printable {
    private static final loghelper s_log = new loghelper(textprinter.class);
    // 半角下的中文字符
    public static final short half_chinese = 0;
    // 半角下的英文字符
    public static final short half_english = 1;
    protected string text;
    protected string seperator;
    public textprinter() {
    }
    public void print(string text, string seperator) {
        this.text = text;
        this.seperator = seperator;
        docflavor flavor = docflavor.service_formatted.printable;
        printrequestattributeset aset = new hashprintrequestattributeset();
        aset.add(new mediaprintablearea(20, 20, 700, 700, mediaprintablearea.mm));
        printservice services = printservicelookup.lookupdefaultprintservice();
        if (services != null) {
            docprintjob pj = services.createprintjob();
            services.addprintserviceattributelistener(new printserviceattributelistener() {
                public void attributeupdate(printserviceattributeevent psae) {
                    printserviceattributeset attribute = psae.getattributes();
                }
            });
            pj.addprintjoblistener(new printjoblistener() {
                public void printdatatransfercompleted(printjobevent pje) {
                    s_log.info("111111111111  "   pje.getprinteventtype());
                }
                public void printjobcanceled(printjobevent pje) {
                    s_log.info("22222222222222222  "   pje.getprinteventtype());
                }
                public void printjobcompleted(printjobevent pje) {
                    s_log.info("33333333333333  "   pje.getprinteventtype());
                }
                public void printjobfailed(printjobevent pje) {
                    s_log.info("444444444444444  "   pje.getprinteventtype());
                }
                public void printjobnomoreevents(printjobevent pje) {
                    s_log.info("5555555555555555555  "   pje.getprinteventtype());
                    system.out.println("打印失败:"   pje.job_failed);
                    system.out.println("没有事件:"   pje.no_more_events);
                }
                public void printjobrequiresattention(printjobevent pje) {
                    s_log.info("66666666666666666666  "   pje.getprinteventtype());
                }
            });
            try {
                doc doc = new simpledoc(this, flavor, null);
                pj.print(doc, aset);
                printerstatereasons printerstatereasons = services
                        .getattribute(printerstatereasons.class);
                system.out.println("-----------"   printerstatereasons);
            } catch (printexception e) {
                e.printstacktrace();
                system.err.println(e);
            }
        } else {
            s_log.info("未找到打印机。");
        }
    }
    public int print(graphics g, pageformat pf, int pageindex) {
        if (pageindex == 0) {
            graphics2d g2d = (graphics2d) g;
            g2d.translate(pf.getimageablex(), pf.getimageabley());
            g2d.setcolor(color.black);
            string[] lines = text.split(seperator);
            for (int i = 0; i < lines.length; i  ) {
                g2d.drawstring(lines[i], 0, (i   1) * 20);
            }
            return printable.page_exists;
        } else {
            return printable.no_such_page;
        }
    }
    /**
     * 为中文字符对齐补空格(打印对齐时候用)
     * 
     * @param content
     *            需要补空格的字符
     * @param expectlength
     *            占用的最大长度
     * @param type
     *            字符的类型:中文、英文
     * @return
     */
    public static string validchinesestring(string content, int expectlength, short type) {
        string resultstring = content.trim();
        string space = null;
        switch (type) {
        case half_chinese: {
            space = " ";
            break;
        }
        case half_english: {
            space = " ";
            break;
        }
        default:
            break;
        }
        int contentlength = content.length();
        if (contentlength < expectlength) {
            int different = expectlength - contentlength;
            for (int i = 0; i < different; i  ) {
                resultstring  = space;
            }
        }
        system.out.println(content   "    "   resultstring);
        return resultstring;
    }
}
2009年10月10日 10:41

2个答案

0 0

第三方包读取com

2009年10月26日 16:44
0 0

打印机监控系统的设计与实现
http://download.csdn.net/source/855257

2009年10月10日 15:02

相关推荐

    可以实时监控打印机状态,如获取打印时间,打印文档名称,打印份数

    简单的例子,用于通过snmp访问利盟打印机 可用于自助终端程序中的本地设备状态信息获取或操控

    自己写的一个小工具,给大家玩玩!...可以监控网络内的网络打印机和共享打印机的使用情况。对打印环境中所有的打印用户,进行打印控制管理。做到费用控制和权限控制。并能实时查看打印机状态(使用中,缺纸等)。

    该项目包括fsp设计和java多线程实现,用于2名学生和1名技术人员使用的共享打印机。 fsp有3个独立过程。 印表机处理 用3篇论文进行初始化 应该至少有1纸才能进行打印 用户必须具有互斥访问打印机的权限 每次打印时...

    java票据打印,打印机状态监控,得到打印机的状态值

    主要对传统的javaee进行了描述以及与springboot是如何衍生而来与其优点 ...11.应用监控 12.分布式系统开发 总体而言这本书还是很不错的,里面对一些注解进行了详细讲解以及为什么要用注解的原因,一句话:大道至简~

    部署后对应操作的端有:平台端,商户端,h5商城,pc商城 1、后台框架 springboot 简单易用 ...店铺配置 基本信息,店铺,打印机等 备注:本源码为官方正版源码,非破解版,仅供下载研究学习,商业使用请联系购买授权!

    ava多商户外贸版正式发布!多语言、国际支付、短信登录等,快来 部署后对应操作的端有:平台端,商户端,h5商城,...店铺配置 基本信息,店铺,打印机等 原版源码,未做任何修改处理,仅供研究学习,授权请支持正版!

    3、支持监测服务接口api、数通设备(如交换机、路由器、打印机)ping和snmp监测、自定义监控指令等。自动生成网络拓扑图,大屏可视化,web ssh,统计分析报表,指令下发批量执行,ftp监测,资产管理,设备账号管理,...

    pdf打印机 评估javascript 调用javascript函数 从浏览器(javascript)调用java函数 支持本地css选择器引擎 支持xpath查询 隐身浏览(私有标签) 全页截屏 支持并行运行 自动等待dom更改完成 触发鼠标事件(单击...

    wgcloud基于微服务springboot架构开发,是轻量高性能的分布式监控系统,核心采集指标包括:cpu使用率,cpu温度,内存使用率,磁盘容量,磁盘io,硬盘smart健康状态,系统负载,连接数量,网卡流量,硬件系统信息等。...

    工厂商品出入库管理系统,商品从生产报批,审核,生产入库,出库配送整个过程通过手机端全程精准监控。其中各个角色权限统一调度分配;复杂商品sku一键上传;完美接入商品小票打印机,随时随地操控商品小票打印;...

    wgcloud基于微服务springboot架构开发,是轻量高性能的分布式监控系统,核心采集指标包括:cpu使用率,cpu温度,内存使用率,磁盘容量,磁盘io,硬盘smart健康状态,系统负载,连接数量,网卡流量,硬件系统信息等。...

    监控和配置网络组件,例如服务器、路由器、交换机或打印机。 此连接器支持简单网络管理协议 (snmp) 版本 2,并使用 snmp4j 库,它是 java:trade_mark: se 的企业级免费开源 snmp 实现。 snmp 是一种流行的协议,用于...

global site tag (gtag.js) - google analytics
网站地图