Java - imprimir directo a la impresora

 
Vista:

imprimir directo a la impresora

Publicado por jorge (2 intervenciones) el 13/03/2015 01:46:00
Hola, alguien que sea tan amable de pasarme un codigo o guiarme para crearlo.

tengo un formulario en java con netbeans, tengo 5 textfields y despues un boton de imprimir, lo que deso es capturar los 5 textfields y despues cuando aplane el boton imprimir me imprima lo que tengo en los textfiedls directo a la impresora (trato de llenar con datos una factura echa en imprenta), si es posible sin que me muestre el cuadro de dialogo de la impresora.

Gracias.

NOTA. no me sirve crear archivos pdf, ni otros, solo directo a la impresora

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

imprimir directo a la impresora

Publicado por eyanez (16 intervenciones) el 17/03/2015 16:12:25
Hola claro que es posible, esto es para imprimir en la impresora por defecto, pero puedes buscar e incluso abrir el cuadro de dialogo de impresoras

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
 
public class ImpresionDirectaImpresora {
 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String texto = "Esto es lo que va a la impresora";
 
		PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
 
 
		DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
		DocPrintJob docPrintJob = printService.createPrintJob();
		Doc doc = new SimpleDoc(texto.getBytes(), flavor, null);
		try {
			docPrintJob.print(doc, null);
		} catch (PrintException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

imprimir directo a la impresora

Publicado por jORGE (2 intervenciones) el 19/03/2015 13:30:03
OK, muchas gracias eyanez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por ICR (1 intervención) el 04/05/2016 05:56:48
Alguien sabe como puedo direccionar la impresión a una impresora especifica conectada localmente al equipo o conectada en la red sin el dialogo de impresión por supuesto, directamente por código? ¿es posible? Muchas gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

imprimir directo a la impresora

Publicado por javier (1 intervención) el 24/01/2017 12:36:15
te copio un metodo que utilice para imprimir un comprabante en una impresora termica, el cual recibe un



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public static void imprimirComprobante(int nro){
 
    try{
	    Connection conn = null;
	    conn = conexion.obtenerConexion();
	    String dir= "DIRECCION REPORTE";
	    JasperReport reporteJasper = JasperCompileManager.compileReport(dir);
	    Map parametro = new HashMap();
	    parametro.put("@nro", nro);
	    JasperPrint mostrarReporte = JasperFillManager.fillReport(reporteJasper,parametro, conn);
 
 
 
	// ESTABLECE DATOS DE IMPRESORAS
 
	    PrinterJob job = PrinterJob.getPrinterJob();
	    PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
	    int selectedService = 0;
	    for(int i = 0; i < services.length;i++){
	    if(services[i].getName().toUpperCase().contains('NOMBRE IMPRESORA')){
	    selectedService = i;
	    }
 
	    }
 
	      job.setPrintService(services[selectedService]);
	      PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
	      MediaSizeName mediaSizeName = MediaSize.findMedia(4,4,MediaPrintableArea.INCH);
	      printRequestAttributeSet.add(mediaSizeName);
	      printRequestAttributeSet.add(new Copies(1));
	      JRPrintServiceExporter exporter;
	      exporter = new JRPrintServiceExporter();
	      exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, services[selectedService]);
	    exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, services[selectedService].getAttributes());
	    exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
	    exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
	    exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
	    exporter.setParameter(JRExporterParameter.JASPER_PRINT, mostrarReporte);
	    exporter.exportReport();
    }catch(JRException ex){
        JOptionPane.showMessageDialog(null, "Error de JREEXEPCION: " + ex);
 
    } catch (PrinterException ex) {
        JOptionPane.showMessageDialog(null,"ERROR PRINTEREXCEPCION " + ex);
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

imprimir directo a la impresora

Publicado por Edwin Amado (1 intervención) el 15/03/2017 21:53:35
Gracias, si me sirvió para el fin que quería.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por Isaac (1 intervención) el 21/07/2017 19:57:37
Esto sirve si la aplicacion se ejecuta sobre la pc cliente, pero si se ejecuta en un servidor web no, ya que, en los servidores no se instalan las impresoreas por lo tanto el lookupPrintServices no encontraria nada.

Si alguien ha resuelto esto para una aplicacion web, favor su ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por Mario (1 intervención) el 16/08/2018 10:52:40
Hola, es medio tarde pero en un programa web no necesitas ver de imprimir así. Transformarlo a PDF o algún formato que delimite bien la impresión y el mismo browser se encarga.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por Saúl (1 intervención) el 22/04/2019 18:30:28
para que el lookupPrintServices encuentre algo, sólo agrega la impresora en la maquina local , haciendo referencia a tu maquina remota.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por Noé Guerrero (2 intervenciones) el 05/05/2021 05:06:06
Es algo más o menos complejo, pero lógioc.

Necesitas crear un MiniServidor de peticiones Http, yo lo hice con JAVA,

Entonces desde JavaScript te conectas, como cunaod hacemos practicas, a localhost, pero esta vez establecer en la url el puerto.

algo como url="127.0.0.1:9000";

Dentro del miniservidor debes castear los datos, ya que se codifican, pero es super sencillo el docodificamiento de la URI y pues ya en Java puedes conectarte a la impresora, yo sé que uno crea WebApps para no tener que darle al usuario nada para instalar, pero en si es un archivo super ligero y te permitira acceder a los recursos de cada computadora. Eso para que no uses el navegador para imprimir y te puedas saltar el cuadro de dialogo.

Igual en C yo creo es aún más rapido, pero carezco de conocimientos suficientes para saber como usar eso en C,
Igual busca cómo crear servidor de peticionces Http sencillos y listo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por josue aquino (1 intervención) el 14/03/2022 15:28:48
efectivamente, pudiste encontrar la solucion a tu aplicacion web de poder imprimir en la impresora conectada en la maquina Cliente ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir directo a la impresora

Publicado por Noé Guerrero Ascencio (2 intervenciones) el 14/03/2022 18:19:18
Si se puede bro, al menos con JAVA
Investiga un poco sobre JavaWebStart, lo que hace es que desde el navegador se descarga y ejecuta una aplicación en Java en la maquina del cliente, pero se hace desde el background,
Luego investiga como crear un MicroServidorHttp en Java, también es muy sencillo, solo toma unas pocas lineas y pocas clases

Entonces desde JavaScrip ya podrás acceder a los recursos de la computadora del Cliente, para imprimir solo necesitas crear algo similar al código al inicio de esta página.

Lo que harás, será silenciosamente traer una aplicación que se ejecutará en el Cliente, pero se inicia desde el navegador, en tu página Web, puedes poner algo como "Conectar con computador" o algo así, puedes traer información de las impresoras conectadas y ponerlas en un select en tu web, para que el usuario elija con cual quiere imprimir y todo.

El cliente debe tener JAVA pero vale completamente la pena porque puedes tener acceso a recursos de la PC del cliente, así puedes mandar impresiones directas, imprimir tickets, abrir cajones de dinero conectados a las impresoras.

Pero primero familiarízate con JavaWebStart y luego crea un MicroServidor Http en Java y mientras la App este activa, podrás comunicar JavaScript con Java.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar