如何解决通过使用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 举报,一经查实,本站将立刻删除。