Buscar en el Blog

Mostrando entradas con la etiqueta impresión. Mostrar todas las entradas
Mostrando entradas con la etiqueta impresión. Mostrar todas las entradas

viernes, 8 de marzo de 2013

Código Java para imprimir en una impresora nombrada

En ésta publicación comparto el código Java para imprimir en una impresora nombrada.

    public static void main(String args[]) throws FileNotFoundException, IOException, PrintException {

        //Archivo que se desea imprimir
        FileInputStream inputStream = new FileInputStream("c:/archivo.pdf");

        //Formato de Documento
        DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
        //Lectura de Documento
        Doc document = new SimpleDoc(inputStream, docFormat, null);

        //Nombre de la impresora
        String printerName = "HP3015";

        //Inclusion del nombre de impresora y sus atributos
        AttributeSet attributeSet = new HashAttributeSet();
        attributeSet.add(new PrinterName(printerName, null));
        attributeSet = new HashAttributeSet();
        //Soporte de color o no
        attributeSet.add(ColorSupported.NOT_SUPPORTED);

        //Busqueda de la impresora por el nombre asignado en attributeSet
        PrintService[] services = PrintServiceLookup.lookupPrintServices(docFormat, attributeSet);

        System.out.println("Imprimiendo en : " + services[0].getName());

        DocPrintJob printJob = services[0].createPrintJob();
        //Envio a la impresora
        printJob.print(document, new HashPrintRequestAttributeSet());

        inputStream.close();

    }


martes, 12 de junio de 2012

Código Java para imprimir en la impresora predeterminada

En la siguiente publicación comparto el código Java para envíar a imprimir un archivo PDF a la impresora por defecto, éste código puede servir para programar la funcionalidad de impresión silenciosa.

Recomiendo además instalar Bullzip PDF Printer qué es una impresora PDF muy útil para realizar pruebas de impresión sin necesidad de gastar hojas de papel.

A continuación el código fuente:


 import javax.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;


public class PrintTest {

    public static void main(String args[]) throws IOException {

        FileInputStream inputStream = null;
        try {
            inputStream = new FileInputStream("c:/archivo.pdf");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        if (inputStream == null) {
            return;
        }

        DocFlavor docFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
        Doc document = new SimpleDoc(inputStream, docFormat, null);

        PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();

        PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService();


        if (defaultPrintService != null) {
            DocPrintJob printJob = defaultPrintService.createPrintJob();
            try {
                printJob.print(document, attributeSet);

            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            System.err.println("No existen impresoras instaladas");
        }

        inputStream.close();
    }
}