Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Imprimir imagen con Print

Imprimir imagen con Print

Autor jc mouse Viernes, Mayo 4, 2012

susto a media noche

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado.

import java.io.File;
import javax.print.Doc;
import java.io.IOException;
import javax.print.DocFlavor;
import javax.print.SimpleDoc;
import java.io.FileInputStream;
import javax.print.DocPrintJob;
import javax.print.PrintService;
import javax.swing.JFileChooser;
import javax.print.PrintException;
import javax.print.PrintServiceLookup;
import javax.print.attribute.standard.Copies;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.print.attribute.HashPrintRequestAttributeSet;
/**
 * @web http://www.jc-mouse.net
 * @author Mouse
 */
public class jcPrint {

    private JFileChooser fileChooser;
    private FileNameExtensionFilter filter = new FileNameExtensionFilter("Imagen","jpg","gif","png");
    private FileInputStream fileInputStream = null;
    private File file=null;

   public jcPrint(){}

   public boolean Abrir()
    {
     fileChooser = new JFileChooser();
       fileChooser.setFileFilter(filter);       
       int result = fileChooser.showOpenDialog(null);
       if ( result == JFileChooser.APPROVE_OPTION ){
            try {
                this.fileInputStream = new FileInputStream( fileChooser.getSelectedFile() );
                this.file = fileChooser.getSelectedFile();
                return true;
            } catch (IOException ex) {
               System.out.println("Error al abrir archivo " + ex);
            }
        }
       return false;
    }

   public String getPathImage()
   {
        return this.file.toString();
   }

   //funcion que imprime una imagen almacenda en "fileInputStream"
    public void Imprimir()
    {
        if( this.fileInputStream != null )
        {
        try {
            //atributos de la impresora
            PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
            pras.add(new Copies(1));                       
            //Impresora configurada del sistema
            PrintService ps = PrintServiceLookup.lookupDefaultPrintService();

            DocPrintJob docPrintJob = ps.createPrintJob();
            Doc doc = new SimpleDoc(fileInputStream, DocFlavor.INPUT_STREAM.GIF, null);
            docPrintJob.print(doc, pras);
            fileInputStream.close();
        } catch (PrintException ex) {
            System.out.println(ex);
        } catch (IOException ex) {
            System.out.println(ex);
        }  finally {
            try {
                fileInputStream.close();
            } catch (IOException ex) {
                System.out.println(ex);
            }
        }
        }
    }  

}

IDE: Netbeans 6.9

Bájate el proyecto desde este enlace

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Ejecutar JAR desde Visual Basic .NET (Lanzadores)

Ejecutar JAR desde Visual Basic .NET (Lanzadores)

Cuando queremos presentar un programa hecho en java y darle un toque de profesionalidad, a veces no queremos que el clie...

Texto e Imagen en Java2d (Proyecto)

Texto e Imagen en Java2d (Proyecto)

Nivel: Intermedio-Avanzado IDE: Netbeans 6.9 o Sup. Tiempo: 30 minutos En este tutorial crearemos una aplicación que nos...

Ejecutar función de postgreSQL desde Java

Ejecutar función de postgreSQL desde Java

Este es una continuación de un tutorial pasado [Funciones en PostgreSQL y pgAdmin], así que si quieres entenderlo mucho...

Guardar y Leer imagenes en PostgresSQL

Guardar y Leer imagenes en PostgresSQL

En este tutorial veremos una forma para registrar archivos JPG en una base de datos PostgreSQL y recuperarlos para utili...

Código de Control en PHP v7.0 Bolivia

Código de Control en PHP v7.0 Bolivia

NUEVA ESPECIFICACIÓN TÉCNICA DEL CÓDIGO DE CONTROL (Ver.7.0) En el marco del Nuevo Sistema de Facturación implementado p...

Guía básica: Trabajando con GitHub y Netbeans

Guía básica: Trabajando con GitHub y Netbeans

Netbeans tiene soporte para trabajar con varias herramientas de control de versiones, GIT es una de ellas, esta herramie...

10 comentarios en “Imprimir imagen con Print”

  1. Andy dice:

    Hola que tal disculpa llevo investigando mucho y aquí es donde veo algo parecido
    mi pregunta es se puede imprimir imagen con texto ?

    1. Mouse dice:

      si se puede 🙂 la pregunta seria ¿donde?
      – en la interfaz gráfica, puedes usar java2d
      – en un reporte o directamente en la impresora, hay varias maneras.

      🙂

  2. edgar dice:

    Mi pregunta es : se puede imprimir de este modo sin que salga el cuadro de impresion sin el cuadro de configuracion de impresion e imprima directo ???

  3. Luis Valdez dice:

    Como puedo imprimir un reporte directamente en la impresora, el cual contenga imagen y texto.

  4. Cesar Jesus Gonzales dice:

    Antes que nada gracias por tu aporte, me funciona perfecto tu ejemplo, pero me imprime al centro, como puedo manipular la ubicación de la imagen?? y tambien el TopMargin es demasiado.. gracias de antemano!

  5. Cesar Jesus Gonzales dice:

    Otra duda es, yo pude imprimir texto plano por un lado, y la imagen QR por otro, lo que quiero es imprimir la imagen justo despues del texto.
    Ejemplo
    *******ticket*********
    texto plano_____ejm
    texto plano_____ejm
    texto plano_____ejm
    texto plano_____ejm
    IMG(QR) imagen_QR

    Pd. no se si me dejo entender! saludos

    1. Mouse dice:

      si quieres imprimir facturas con QR todo es cosa del diseñador de reportes ahí puedes indicar la posición y tamaño de la imagen

  6. Cesar Jesus Gonzales dice:

    Este es mi Codigo por si le sirve a alguien!
    DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
    PrintService service = PrintServiceLookup.lookupDefaultPrintService();
    DocPrintJob pj = service.createPrintJob();
    byte[]bytes = cadena.getBytes();
    Doc doc = new SimpleDoc(bytes, flavor,null);
    if (impresoraDisponible(service)) { //verificarEstadoImpresora.
    try{
    pj.print(doc,null);
    resultado = “ok”;
    }catch(PrintException pe){
    Logs.escribirLog(Logs.ste2String(pe.getStackTrace(), pe, “Ocurrio un error al momento de Imprimir.”), 3);
    resultado = “Ocurrio un error al momento de Imprimir. Error: “+pe.getMessage();
    System.out.println(pe.getMessage());
    }catch(Exception e){
    Logs.escribirLog(Logs.ste2String(e.getStackTrace(), e, “Ocurrio un error al momento de Imprimir.”), 3);
    resultado = “Ocurrio un error al momento de Imprimir. Error: “+e.getMessage();
    System.out.println(e.getMessage());
    }
    }

    //***Impresion de la Imagen QR****
    PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
    DocPrintJob docPrintJob = ps.createPrintJob();
    Doc docu = new SimpleDoc(fis, DocFlavor.INPUT_STREAM.GIF, null);
    try{
    docPrintJob.print(docu,null);
    }catch(PrintException pe){
    Logs.escribirLog(Logs.ste2String(pe.getStackTrace(), pe, “Ocurrio un error al momento de Imprimir.”), 3);
    resultado = “Ocurrio un error al momento de Imprimir. Error: “+pe.getMessage();
    System.out.println(pe.getMessage());
    }
    try {
    fis.close();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    //***Impresion de la Imagen QR****

  7. Cesar Jesus Gonzales dice:

    La forma solucion mas rapida que encontré fue esa…. pero no es mala idea usar un generador de reportes! Saludos!!

  8. ivan dice:

    Muchas gracias por compartir tu información, me ha sido muy útil.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

Desde java 7 esta disponible la interface ExecutorService que se extiende de Executor y nos proporciona los métodos nece...

En este post crearemos una app para utilizar el vibrador de nuestro dispositivo android usando para ello el IDE Android...

En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el proc...

Gson es una biblioteca de código abierto para Java desarrollado por Google Inc que permite la serialización y deserializ...

Android Bolivia

Bandera en Alto