圖形化界面調(diào)用打印機(jī)圃伶,記錄一下妓雾,在特定的場(chǎng)合可以使用~
package com.tj.print;
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;
public class Print {
public static void main(String[] args) {
JFileChooser fileChooser = new JFileChooser(); // 創(chuàng)建打印作業(yè)
int state = fileChooser.showOpenDialog(null);
if (state == fileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile(); // 獲取選擇的文件
// 構(gòu)建打印請(qǐng)求屬性集
HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
// 設(shè)置打印格式,因?yàn)槲创_定類(lèi)型杨箭,所以選擇autosense
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
// 查找所有的可用的打印服務(wù)
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
// 定位默認(rèn)的打印服務(wù)
PrintService defaultService = PrintServiceLookup
.lookupDefaultPrintService();
// 顯示打印對(duì)話(huà)框
PrintService service = ServiceUI.printDialog(null, 800, 600,
printService, defaultService, flavor, pras);
if (service != null) {
try {
DocPrintJob job = service.createPrintJob(); // 創(chuàng)建打印作業(yè)
FileInputStream fis = new FileInputStream(file); // 構(gòu)造待打印的文件流
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}