java实现的打印机打印1

		//设置打印属性 										构造一个新的空打印请求属性集。					
		PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
		pras.add(new Copies(3));//打印份数,3份
		
		//设置打印数据的格式						DocFlavor.BYTE_ARRAY.PNG     MIME 类型 = "image/png",打印数据表示形式类名 = "[B"(byte 数组)的 DocFlavor。
		DocFlavor flavor = DocFlavor.BYTE_ARRAY.PNG;
			
		//查找所有符合条件的打印服务  						lookupPrintServices(flavor, pras);查找能够打印指定 DocFlavor 的 PrintService。 
		PrintService[] printService = PrintServiceLookup.lookupPrintServices(flavor, pras);

		//将所有查找出来的打印机与自己想要的打印机进行匹配,找出自己想要的打印机  
	    LookUpPrint p=new LookUpPrint();
	    PrintService myPrintService = p.GetPrintService("printName");



    //PrinterJob 类是控制打印的主要类。应用程序调用此类中的方法设置作业、(可选地)调用与用户的打印对话框,然后打印作业的页面。
	    //getPrinterJob()   创建并返回初始化时与默认打印机关联的 PrinterJob。                                                 打印任务
		PrinterJob job = PrinterJob.getPrinterJob();
		//setPrintService(PrintService service)     将此 PrinterJob 与新的 PrintService 关联。                         把任务挂到服务上
		job.setPrintService(myPrintService);
		
	    //PDDocument   这是PDF文档的内存中表示。当不再需要文档时,必须调用#close()方法。
	    //load(File file)    解析一个PDF。不受限制的主存将用于缓冲PDF流。
	    PDDocument document = PDDocument.load(new File("printPath"));			//将PDF文档解析为PDF流存入到内存中
	    
	    //Paper 类描述一张纸的物理特征。
		Paper paper = new Paper();
		paper.setSize(252, 141); // 1/72 inch    //设置此 Paper 对象的宽和高,它表示要用来打印的页面的属性。
		paper.setImageableArea(0, 5, paper.getWidth(), paper.getHeight()); 
		// setImageableArea:设置此 Paper 的可成像区域。可成像区域是页面上用来打印的区域。 左上角的 X 坐标,Y 坐标,区域宽度,高度

		//PageFormat 类描述要打印的页面大小和方向。 
		PageFormat pageFormat = new PageFormat();
		pageFormat.setPaper(paper);//为此 PageFormat 设置 Paper 对象
		
		//Book 类提供文档的表示形式,该文档的页面可以使用不同的页面格式和页面 painter。此类使用 Pageable 接口与 PrinterJob 交互。 
		Book book = new Book();
		//将多个页面追加到此 Book 的尾部。
		book.append(new PDFPrintable(document), pageFormat, document.getNumberOfPages());
		
		//查询 document,以获得页面数和 Pageable 实例 document 中保存的每个页面的 PageFormat 和 Printable。 
		job.setPageable(new PDFPageable(document, Orientation.PORTRAIT));
		job.setPageable(book);
		
		//打印一组页面。 
		job.print();
	    

  

转载于:https://www.cnblogs.com/whstudyblog/p/8794748.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值