PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。
接口 PrintService 是 DocPrintJob 的工厂。PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。
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;
10. import javax.print.SimpleDoc;
11. import javax.print.attribute.DocAttributeSet;
12. import javax.print.attribute.HashDocAttributeSet;
13. import javax.print.attribute.HashPrintRequestAttributeSet;
14. import javax.swing.JFileChooser;
- 15.
- 16. /**
- 17. * 建立与打印机的连接
- 18. * @author Administrator
- 19. *
- 20. */
21. public class PrintDemo {
- 22.
- 23. public static void main(String[] args) {
- 24. JFileChooser fileChooser = new JFileChooser(); //创建打印作业
- 25. int state = fileChooser.showOpenDialog(null);
- 26. if(state == fileChooser.APPROVE_OPTION){
- 27. File file = new File("D:/zkyzl.txt"); //获取选择的文件
- 28. //构建打印请求属性集
- 29. HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
- 30. //设置打印格式,因为未确定类型,所以选择autosense
- 31. DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
- 32. //查找所有的可用的打印服务
- 33. PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
- 34. //定位默认的打印服务
- 35. PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
- 36. //显示打印对话框
- 37. PrintService service = ServiceUI.printDialog(null, 200, 200, printService,
- 38. defaultService, flavor, pras);
- 39. if(service != null){
- 40. try {
- 41. DocPrintJob job = service.createPrintJob(); //创建打印作业
- 42. FileInputStream fis = new FileInputStream(file); //构造待打印的文件流
- 43. DocAttributeSet das = new HashDocAttributeSet();
- 44. Doc doc = new SimpleDoc(fis, flavor, das);
- 45. job.print(doc, pras);
- 46. } catch (Exception e) {
- 47. e.printStackTrace();
- 48. }
- 49. }
- 50. }
- 51. }
52. }

浙公网安备 33010602011771号