Lo que me gusta, me interesa y me motiva…
RSS icon Home icon
  • Imprimiendo con Java

    Imprimir desde JavaEste es un ejemplo simple sobre cómo puedes imprimir un archivo desde Java…

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
     
    import javax.print.Doc;
    import javax.print.DocFlavor;
    import javax.print.DocPrintJob;
    import javax.print.PrintException;
    import javax.print.PrintService;
    import javax.print.PrintServiceLookup;
    import javax.print.SimpleDoc;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
    import javax.print.attribute.standard.Copies;
    import javax.print.attribute.standard.MediaSizeName;
     
    public class PrintGIF {
     
    	public static void main(String args[]) {
     
    		// tu archivo a imprimir
    		String file = "c:\\image.gif";
     
    		// definimos el tipo a imprimir
    		DocFlavor docFlavor = DocFlavor.INPUT_STREAM.GIF;
     
    		// establecemos algunos atributos de la impresora
    		PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
    		aset.add(MediaSizeName.ISO_A4);
    		aset.add(new Copies(1));
     
    		// mi impresora por default
    		PrintService service = PrintServiceLookup.lookupDefaultPrintService();
     
    		Doc docPrint;
    		try {
    			docPrint = new SimpleDoc(new FileInputStream(file), docFlavor, null);
    		} catch (FileNotFoundException e1) {
    			e1.printStackTrace();
    			return;
    		}
     
    		// inicio el proceso de impresion...
    		DocPrintJob printJob = service.createPrintJob();
    		try {
    			printJob.print(docPrint, aset);
    		} catch (PrintException e) {
    			e.printStackTrace();
    			return;
    		}
    	}
    }

    Quizás te interese también este artículo
    Manejando tus impresoras con Java

  • Manejando tus impresoras con Java

    ¿Cómo ver todas las impresoras disponibles con java, la impresora que tienes por default y otros atributos de tus impresoras?
    Aquí van algunos ejemplos simples…

    import javax.print.PrintService;
    import javax.print.PrintServiceLookup;
    import javax.print.attribute.Attribute;
    import javax.print.attribute.AttributeSet;
    import javax.print.attribute.HashAttributeSet;
    import javax.print.attribute.PrintServiceAttributeSet;
    import javax.print.attribute.standard.Destination;
    import javax.print.attribute.standard.PrinterInfo;
    import javax.print.attribute.standard.PrinterIsAcceptingJobs;
    import javax.print.attribute.standard.PrinterLocation;
    import javax.print.attribute.standard.PrinterMakeAndModel;
    import javax.print.attribute.standard.PrinterName;
    import javax.print.attribute.standard.PrinterState;
     
    /**
     * Ejemplos para ver tus impresoras
     * @author Peiretti
     */
    public class PrintExamples {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
     
            printAvailable();
            printDefault();
            printByName("MiImpresora");
        }
     
        public static void printAvailable() {
     
            // busca los servicios de impresion...
            PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
     
            // -- ver los atributos de las impresoras...
            for (PrintService printService : services) {
     
                System.out.println(" ---- IMPRESORA: " + printService.getName());
     
                PrintServiceAttributeSet printServiceAttributeSet = printService.getAttributes();
     
                System.out.println("--- atributos");
     
                // todos los atributos de la impresora
                Attribute[] a = printServiceAttributeSet.toArray();
                for (Attribute unAtribute : a) {
                    System.out.println("atributo: " + unAtribute.getName());
                }
     
                System.out.println("--- viendo valores especificos de los atributos ");
     
                // valor especifico de un determinado atributo de la impresora
                System.out.println("PrinterLocation: " + printServiceAttributeSet.get(PrinterLocation.class));
                System.out.println("PrinterInfo: " + printServiceAttributeSet.get(PrinterInfo.class));
                System.out.println("PrinterState: " + printServiceAttributeSet.get(PrinterState.class));
                System.out.println("Destination: " + printServiceAttributeSet.get(Destination.class));
                System.out.println("PrinterMakeAndModel: " + printServiceAttributeSet.get(PrinterMakeAndModel.class));
                System.out.println("PrinterIsAcceptingJobs: " + printServiceAttributeSet.get(PrinterIsAcceptingJobs.class));
     
            }
     
        }
     
        public static void printDefault() {
     
            // tu impresora por default
            PrintService service = PrintServiceLookup.lookupDefaultPrintService();
            System.out.println("Tu impresora por default es: " + service.getName());
     
        }
     
        public static void printByName(String printName) {
     
        	PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
     
            // buscar por el nombre de la impresora (nombre que le diste en tu S.O.)
            // en "aset" puedes agregar mas atributos de busqueda
            AttributeSet aset = new HashAttributeSet();
            aset.add(new PrinterName(printName, null));
            //aset.add(ColorSupported.SUPPORTED); // si quisieras buscar ademas las que soporten color
     
            services = PrintServiceLookup.lookupPrintServices(null, aset);
            if(services.length == 0){
            	System.out.println("No se encontro impresora con nombre " + printName);
            }
            for (PrintService printService : services) {
            	System.out.println(printService.getName());
    		}
        }
    }