java调用PrinterJob结合针式打印机打印的问题

一个南方人 2015-11-24 03:25:37
public int print(Graphics gra, PageFormat pf, int pageIndex)
throws PrinterException {
if (pageIndex > 0) {
return NO_SUCH_PAGE;
}

Graphics2D g2d = (Graphics2D) gra;
g2d.setFont(new Font("黑体", Font.PLAIN, 8));
g2d.drawString("等 位 排 单 号", 50, 0);
g2d.drawString("-------------------------------------", 7, 15);
g2d.drawString("手 机 号 码:" + "15113377898", 7, 30);
g2d.drawString("领 号 日 期:" + "2015-11-23", 7, 45);
g2d.drawString("-------------------------------------", 7, 60);
g2d.setFont(new Font("宋体", Font.PLAIN, 8));
g2d.drawString("小 号", 7, 75);
g2d.setFont(new Font("宋 体", Font.PLAIN, 8));
g2d.drawString("您 之 前 还 有" + 5 + "桌 客 人 在 等 待", 7, 90);
g2d.drawString("-------------------------------------", 7, 105);
g2d.drawString("*打 印 时 间:" + "2015-11-23 17:41" + "*", 7, 120);
g2d.drawString("店 名:" + "小 代 之 家", 7, 135);


return PAGE_EXISTS;
}

public static void test() {
//ReadData();
// 通俗理解就是书、文档
int height = 20 + 3 * 15 + 20;

Book book = new Book();
// 设置成竖打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT); // LANDSCAPE表示竖打;PORTRAIT表示横打;REVERSE_LANDSCAPE表示打印空白
// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
Paper p = new Paper();
p.setSize(216, 841); // 纸张大小(590, 840)表示A4纸
p.setImageableArea(0, 0, 216, 841); // A4(595 X
// 842)设置打印区域,其实0,0应该是72,72
// ,因为A4纸的默认X,Y边距是72

pf.setPaper(p);
// 把 PageFormat 和 Printable 添加到书中,组成一个页面
book.append(new TestPrint(), pf);
// 获取打印服务对象

PrintService pss[]=PrinterJob.lookupPrintServices();
PrintService ps = pss[0];
PrinterJob job = PrinterJob.getPrinterJob();
System.out.print(job.getJobName());
System.out.print(job.getPrintService());
// 设置打印类
job.setPageable(book);

try {
// 可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印
boolean a=job.printDialog();
if(a)
{
job.print();
}
} catch (PrinterException e) {
e.printStackTrace();
}
}

具体代码如上面,打印出来的效果

完全看不清,字都挤在一起了,纸的宽度是76mm,求大神指教。
或者有没有更好的调用针式打印机的方法
...全文
717 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
vcshcn 2017-02-18
用jasperreport+ireport打印
回复
harry163 2017-02-17
楼主你的问题解决了吗?
回复
一个南方人 2015-11-25
来个大神解决下
回复
一个南方人 2015-11-25
没人知道这个问题吗
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-11-24 03:25
社区公告
暂无公告