Java 背书爱普生TM-h6000IV爪哇印刷
我需要用Java打印到爱普生背书TM-h6000iv打印机(usb版)。然而,我读了手册却不希望找到什么可以帮助我。我改变打印机的首选项也没有希望!我尝试使用java的这段代码,该代码在java中TextPrinter类用于打印工作 主“打印”功能:Java 背书爱普生TM-h6000IV爪哇印刷,java,epson,java-print,Java,Epson,Java Print,我需要用Java打印到爱普生背书TM-h6000iv打印机(usb版)。然而,我读了手册却不希望找到什么可以帮助我。我改变打印机的首选项也没有希望!我尝试使用java的这段代码,该代码在java中TextPrinter类用于打印工作 主“打印”功能: // ----- start printing ------ public int print(Graphics g, PageFormat pf, int pageIndex) { double ww, hh, x, y;
// ----- start printing ------
public int print(Graphics g, PageFormat pf, int pageIndex) {
double ww, hh, x, y;
String s;
pf = PF; // The PF indicates for defaultPage PF= Pj.defaultPage();
GG = (Graphics2D) g;
s = "Serif";
GG.setFont(new Font(s, Font.BOLD, Fy));
GG.setColor(Color.black);
GFont = GG.getFont();
FM = GG.getFontMetrics();
// Insure printing of ONE page
if (pageIndex != 0)
return Printable.NO_SUCH_PAGE;
ww = pf.getImageableWidth();
hh = pf.getImageableHeight();
x = pf.getImageableX();
y = pf.getImageableY();
GG.translate(x, y);
int xpos = 0;
draw(getLine(10), xpos, 5);//getLine to return line of String from 0-9 this line will return "0123456789"
draw(getLine(20), xpos, 6);//"01234567890123456789"
draw(getLine(30), xpos, 7); // etc.
draw(getLine(40), xpos, 8);
int x0 = 0, x1 = (int) ww - 10;
// GG.drawRect(x0, x0, x1, x1);
// draw Rectangular
GG.drawLine(x0, x0, x1, x0);
GG.drawLine(x0, x0, x0, x1);
GG.drawLine(x0, x1, x1, x1);
GG.drawLine(x1, x1, x1, x0);
return Printable.PAGE_EXISTS;
}
但是,预期输出如下图所示:
// ----- start printing ------
public int print(Graphics g, PageFormat pf, int pageIndex) {
double ww, hh, x, y;
String s;
pf = PF; // The PF indicates for defaultPage PF= Pj.defaultPage();
GG = (Graphics2D) g;
s = "Serif";
GG.setFont(new Font(s, Font.BOLD, Fy));
GG.setColor(Color.black);
GFont = GG.getFont();
FM = GG.getFontMetrics();
// Insure printing of ONE page
if (pageIndex != 0)
return Printable.NO_SUCH_PAGE;
ww = pf.getImageableWidth();
hh = pf.getImageableHeight();
x = pf.getImageableX();
y = pf.getImageableY();
GG.translate(x, y);
int xpos = 0;
draw(getLine(10), xpos, 5);//getLine to return line of String from 0-9 this line will return "0123456789"
draw(getLine(20), xpos, 6);//"01234567890123456789"
draw(getLine(30), xpos, 7); // etc.
draw(getLine(40), xpos, 8);
int x0 = 0, x1 = (int) ww - 10;
// GG.drawRect(x0, x0, x1, x1);
// draw Rectangular
GG.drawLine(x0, x0, x1, x0);
GG.drawLine(x0, x0, x0, x1);
GG.drawLine(x0, x1, x1, x1);
GG.drawLine(x1, x1, x1, x0);
return Printable.PAGE_EXISTS;
}
但是,实际输出如下图所示:
如您所见,没有边框的部分字符也不会出现!我的代码哪里出错了我不知道
在这里您可以看到这台打印机的主要属性,其中“背书”一项:
很抱歉这么长的解释,但如果有任何帮助,我们将不胜感激。经过每天的头痛,我的问题终于解决了!!只是我把Epson打印机的打印条设置改为[92,68][高度,长度],然后一切都很完美。感谢我的上帝 我建议先在屏幕上画这幅画,只有当你看到你想看的东西时,才把它改成打印。这不是关于打印机,而是关于布局。您的矩形没有任何意义,并且您根本没有使用字体度量。一旦您在屏幕图形环境中正确完成绘图,您就可以使用相同的代码进行打印。@realponsign谢谢您的评论,我真的尝试了您建议的所有内容!问题是打印机没有打印出接近50mm的特定区域!我不知道为什么?!!我改变了打印机布局也没有希望!!这会让我发疯的!!我不确定你是否明白我说的话。不管打印机做什么,你的画都是错的。请先把它画到窗口上,然后把它固定在窗口上,试着用打印机打印出来。如果不起作用,请编辑您的问题并输入新代码。您是否更改了
PageFormat
?打印机可能无法打印超出给定范围的内容。请问页面格式是什么意思?尺寸?还是定位?还是可成像区域?我对他们都改变了,没有希望!!打印机不打印特定区域!!哪里有问题我不知道!!!Maheera你用什么爱普生代码让它在背书打印机而不是收据打印机上打印?