湛蓝天 2019-01-24 04:10 采纳率: 0%
浏览 1348
已采纳

Java调用小票打印机,只能打印大约A4纸那么长,怎么能完全打印?

try {
// 通俗理解就是书、文档
Book book = new Book();
// 设置成竖打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT );
// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
Paper paper = new Paper();
paper.setSize(266.8, 30000);// 纸张大小
paper.setImageableArea(10, 15, 266.8, 30000);// A4(595 X
// 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72
pf.setPaper(paper);

        book.append(new PrintableAllOrder(orderInfo), pf);

        // 获取打印服务对象
        PrinterJob job = PrinterJob.getPrinterJob();
        // 设置打印类
        job.setPageable(book);
        //指定XP-80C打印机打印分单
        HashAttributeSet hs = new HashAttributeSet();
        String printerName=printName;
        hs.add(new PrinterName(printerName,null));
        PrintService[] pss = PrintServiceLookup.lookupPrintServices(DocFlavor.SERVICE_FORMATTED.PAGEABLE, hs);
        if(pss.length==0)
        {
            System.out.println("无法找到打印机:");
            throw new SimpleException("无法找到打印机:");

// return FootResult.ERROR("无法找到打印机");
}

        // 获取打印服务对象

        //添加指定的打印机
        job.setPrintService(pss[0]);
        //开始打印
        job.print();
    } catch (PrinterException e) {
        e.printStackTrace();
    }

// return FootResult.SUCCESS("已添加到打印队列");
}


展开全部

  • 写回答

1条回答 默认 最新

  • 湛蓝天 2019-02-13 03:58
    关注

    public static void printClassfyGoods(OrderInfo orderInfo, String printName) {
    DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
    PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
    // 纵向打印
    pras.add(OrientationRequested.PORTRAIT);
    PrintService[] pss = PrintServiceLookup.lookupPrintServices(flavor,null);
    if(pss.length==0)
    {
    throw new SimpleException("无法找到打印机:");
    }else{
    for (PrintService pppp:pss
    ) {
    if(pppp.getName().equals(printName)){
    DocAttributeSet das = new HashDocAttributeSet();
    // 设置打印纸张的大小(以毫米为单位)
    das.add(new MediaPrintableArea(0, 0, 80, 3276, MediaPrintableArea.MM));
    // 获取打印服务对象
    DocPrintJob job = pppp.createPrintJob();
    PrintableClassfyGoods printableAllOrder=new PrintableClassfyGoods(orderInfo);
    Doc doc = new SimpleDoc(printableAllOrder,flavor,das);
    //添加指定的打印机
    try {
    job.print(doc,pras);
    } catch (PrintException e) {
    e.printStackTrace();
    }
    return;
    }
    }

        }
    }
    
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
  • ¥20 Excel数据自动录入表单并提交
  • ¥30 silcavo仿真,30分钟,只需要代码
  • ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
  • ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部