java調用打印機

270259384 9年前發布 | 23K 次閱讀 打印機 Java開發 Java
 
import java.io.File; 

import java.io.FileInputStream; 

import javax.print.Doc; 

import javax.print.DocFlavor; 

import javax.print.DocPrintJob; 

import javax.print.PrintService; 

import javax.print.PrintServiceLookup; 

import javax.print.ServiceUI; 

import javax.print.SimpleDoc; 

import javax.print.attribute.DocAttributeSet; 

import javax.print.attribute.HashDocAttributeSet; 

import javax.print.attribute.HashPrintRequestAttributeSet; 

import javax.swing.JFileChooser; 

/** 

* 建立與打印機的連接 

* @author Administrator 

*/ 

public class PrintDemo { 

public static void main(String[] args) { 

JFileChooser fileChooser = new JFileChooser(); //創建打印作業 

int state = fileChooser.showOpenDialog(null); 

if(state == fileChooser.APPROVE_OPTION){ 

File file = new File("D:/zkyzl.txt"); //獲取選擇的文件 

//構建打印請求屬性集 

HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); 

//設置打印格式,因為未確定類型,所以選擇autosense 

DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; 

//查找所有的可用的打印服務 

PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); 

//定位默認的打印服務 

PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); 

//顯示打印對話框 

PrintService service = ServiceUI.printDialog(null, 200, 200, printService, 

defaultService, flavor, pras); 

if(service != null){ 

try { 

DocPrintJob job = service.createPrintJob(); //創建打印作業 

FileInputStream fis = new FileInputStream(file); //構造待打印的文件流 

DocAttributeSet das = new HashDocAttributeSet(); 

Doc doc = new SimpleDoc(fis, flavor, das); 

job.print(doc, pras); 

} catch (Exception e) { 

e.printStackTrace(); 

} 

} 

} 

} 

} 
 本文由用戶 270259384 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!