通过使用Java类在热敏打印机EPSON tm-t2OII中裁切纸张来发行

问题描述

我在上此类课时打印时遇到了问题,我正在阅读,这似乎是因为打印机不知道工作状态,但我不知道如何解决。如果有人可以帮助我,我将不胜感激。非常感谢。

这是我要使用的代码,我从主机名给出打印机名称,并提供要打印的字符串。

关于打印的一切都很好,问题在于剪切功能不起作用。

package com.company;

import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.util.ArrayList;
import java.util.List;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;

public class PrinterService implements Printable {

    @Override
    public int print(Graphics g,PageFormat pf,int page)
            throws PrinterException {
        if (page > 0) { /* We have only one page,and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

        /*
         * User (0,0) is typically outside the imageable area,so we must
         * translate by the X and Y values in the PageFormat to avoid clipping
         */
        Graphics2D g2d = (Graphics2D) g;
        g2d.translate(pf.getImageableX(),pf.getImageableY());
        /* Now we perform our rendering */

        g.setFont(new Font("Roman",8));
        g.drawString("Hello world !",10);

        return PAGE_EXISTS;
    }

    public void printString(String printerName,String text) {

        // find the printService of name printerName
        DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

        PrintService printService[] = PrintServiceLookup.lookupPrintServices(
                flavor,pras);
        PrintService service = findPrintService(printerName,printService);

        DocPrintJob job = service.createPrintJob();

        try {

            byte[] bytes;

            // important for umlaut chars
            bytes = text.getBytes("CP437");

            Doc doc = new SimpleDoc(bytes,flavor,null);

            job.print(doc,null);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...