java之打印機服務通俗做法


javax.print包是API的主包,其中包含的類和接口能夠讓你:1)發現打印服務(Print Services)2)指定打印數據的格式 3)從一個打印服務創建打印工作(print jobs) 4)向一個打印設備或者數據流發送打印數據

通俗點就是:1)列出打印機列表  2)整合要打印的頁面  3)獲取打印服務對象並設置要干什么  4)打印對象要干什么通過打印機去干

//打印機列表
PrintService[] printService = PrintServiceLookup.lookupPrintServices(null, null);
PrintService ps = null;
for (int i = 0; i < printService.length; i++) {
    String pn = printService[i].getName();
    System.out.println(pn);
}
float dpm = 72 / 25.4f;
//理解成書
Book book = new Book();
//設置成豎打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT);
//理解成紙,大小嚴格按實際
Paper pp = new Paper();
pp.setSize(dpm * 40, dpm * 30);// 紙張大小
pp.setImageableArea(0, 0, dpm * 40, dpm * 30);// 打印區域
pf.setPaper(pp);
// 把 PageFormat 和 Printable 添加到書中,組成一個頁面
TickPage page = new TickPage();//TickPage是重寫Printable的類,其實現打印內容的詳細
book.append(page, pf);
// 獲取打印服務對象
PrinterJob job = PrinterJob.getPrinterJob();
// 設置打印類
job.setPageable(book);
//告訴打印機
job.setPrintService(ps);
//打印
job.print();
public class TickPage implements Printable {
    public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException {
        //NO_SUCH_PAGE告訴打印機沒東西打
        if(pageIndex!=0)return NO_SUCH_PAGE;
        //要怎么打印東西都在這里
        g.setFont(new Font("",0,7));
        g.drawString("hello zhylioooo!",10,20);
        return PAGE_EXISTS;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM