précédent | suivant | table des matières
|
Impression d'un fichier vers une imprimante
Le code suivant imprime le fichier nom : (un fichier texte ordinaire doit se terminer par une ligne vide !)
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet(); DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; // lister les imprimantes qui supportent ce flavor PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); // choix de l'imprimante PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras); if (service != null) { DocPrintJob job = service.createPrintJob(); try { FileInputStream fis = new FileInputStream(nom); DocAttributeSet das = new HashDocAttributeSet(); Doc doc = new SimpleDoc(fis, flavor, das); // lancement de l'impression job.print(doc, pras); } catch (PrintException ex) { ... } catch (FileNotFoundException ex) { ... } } }
Ce code ne fonctionne pas pour des fichiers PDF.
Impression d'un fichier vers un fichier
DocFlavor type( String nom ){ int i = nom.lastIndexOf('.'); String t = nom.substring(i+1).toLowerCase(); if(t.equals("gif"))return DocFlavor.INPUT_STREAM.GIF; if(t.equals("jpeg"))return DocFlavor.INPUT_STREAM.JPEG; if(t.equals("jpg"))return DocFlavor.INPUT_STREAM.JPEG; if(t.equals("png"))return DocFlavor.INPUT_STREAM.PNG; return null; } public void imprimerFichierFichier(String nom, String nomD) { setCursor(attendre); DocFlavor flavor = type(nom); String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType(); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); aset.add(OrientationRequested.LANDSCAPE); StreamPrintServiceFactory[] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType); if(factories.length==0) { JOptionPane.showMessageDialog(this, "pas possible", "ERREUR", JOptionPane.ERROR_MESSAGE); return; } try { FileInputStream fis = new FileInputStream(nom); FileOutputStream fos = new FileOutputStream(nomD); StreamPrintService sps = factories[0].getPrintService(fos); DocPrintJob pj = sps.createPrintJob(); DocAttributeSet das = new HashDocAttributeSet(); Doc doc = new SimpleDoc(fis, flavor, das); pj.print(doc, aset); } catch (IOException e) { System.err.println(e); } catch (PrintException e) { System.err.println(e); } setCursor(normal); }