Foros del Web » Programación para mayores de 30 ;) » Java »

imprimit desde applet

Estas en el tema de imprimit desde applet en el foro de Java en Foros del Web. Hola a todos, Voy ha intentar explicar lo que estoy intentando hacer y no sale. Tengo que imprimir en una impresora de etiquetas ( Zebra ...
  #1 (permalink)  
Antiguo 22/01/2010, 11:51
ppb
 
Fecha de Ingreso: enero-2010
Mensajes: 5
Antigüedad: 14 años, 3 meses
Puntos: 0
imprimit desde applet

Hola a todos,

Voy ha intentar explicar lo que estoy intentando hacer y no sale.
Tengo que imprimir en una impresora de etiquetas ( Zebra ) un fichero , he hecho
el applet que imprime el fichero pasando como parámetros la URL del fichero a imprimir ; lo que pasa es que cada vez que se recarga la página se vuelve a ejecutar el applet con lo cual imprime lo último impreso aunque el usuario no haya
dado al click de imprimir; estoy pensando varias soluciones , pero no se si son viables:

1. Intentar arrancar el applet en otra ventana y cerrarla cuando haya acabado la impresión ?

2. Que el applet borre el fichero en el servidor para que no lo vuelva a imprimir ?

3. Que haya alguna manera dentro de la página html para que se ejecute el applet o no se ejecute dependiendo si hay que imprimir o no ?

4..........


No se si me explicado , estoy bastante perdido.

Gracias por adelantado y por vuestro tiempo.
  #2 (permalink)  
Antiguo 22/01/2010, 21:27
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: imprimit desde applet

el applet lo podes levantar mediante un iframe. dentro del mismo como object.
dentro del mismo con el tag applet de html.
En el tag applet podes incluir parametros.
Los mismos serian ubicacion de la impresora y lo que queres imprimir en el caso que uses un simple impresion sin utilizar
una seleccion de impresora instalada.
Luego para que pueda funcionar el applet sin que tire excepciones de accesos a recursos.
Tenes 2 opciones.
1- firmar el applet y generar el certificado con el keystore de firma.
2- agregarle un java.policy y ver si esta opcion te sirve en tu caso ya que tiene varias restricciones.

Última edición por megajandro; 22/01/2010 a las 21:33
  #3 (permalink)  
Antiguo 25/01/2010, 06:07
ppb
 
Fecha de Ingreso: enero-2010
Mensajes: 5
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: imprimit desde applet

Gracias megajandro ,
soy nuevo en este mundo de web, según entiendo dices algo así :
Código HTML:
<iframe>.
   <object>.
      ................
   </object>.
</iframe> 


¿ Una pregunta ? Como hago que se ejecute el applet ?

de nuevo gracias por tu tiempo.
  #4 (permalink)  
Antiguo 25/01/2010, 19:03
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: por ahi!!!
Mensajes: 113
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: imprimit desde applet

dentro de object algo asi.

<applet id="idApplet" code="prueba.AppletAccessor" codebase="../applet/" archive="applet.jar" width="200" height="100">
<PARAM NAME="first" VALUE="&{jsVar};">
<PARAM NAME="second" VALUE="&{jsFnct()};">
<PARAM NAME="third" VALUE="&{'hello world'.toUpperCase() + ' from js Expression'};">
</applet>
este es el script para setearle los parametros.
<script>
var jsVar = "Hello World from jsVar";

function jsFnct() {
return "Hello World from jsFnct";
}

function imprime()
{
var applet = document.getElementById('idApplet'); //Objeto del applet embebido en la pagina
var dato = document.getElementById('datito').value;
applet.rellenaListaConFicheroDeDirectorioRaiz(dato );
}
</script>

el applet de este ejemplo es este.

public class AppletAccessor extends JApplet
{
private static final long serialVersionUID = 3562328307659746629L;
private DefaultListModel modelo = new DefaultListModel();
public void init()
{
JList lista = new JList(modelo);
JScrollPane scroll = new JScrollPane(lista);
add(scroll);
add(new Label(getParameter("first")));
add(new Label(getParameter("second")));
add(new Label(getParameter("third")));
}

public void rellenaListaConFicheroDeDirectorioRaiz(String datoImprimir)
{
System.out.println(datoImprimir);
File directorioRaiz = new File("/");
String [] ficheros = directorioRaiz.list();
for (int i=0;i<ficheros.length;i++)
modelo.addElement(ficheros[i]);
modelo.addElement(datoImprimir);
}
}

con el applet tenes que generar un jar y dejarlo dentro de tu contexto web. por lo general webContent o webapp. lo tenes que firmar o tocar los java.policy como te dije antes. Espero que te sirva el ejemplo.
  #5 (permalink)  
Antiguo 12/02/2010, 05:53
ppb
 
Fecha de Ingreso: enero-2010
Mensajes: 5
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: imprimit desde applet

Gracias megajandro , con tu ayuda creo que estoy a punto de resolverlo.
  #6 (permalink)  
Antiguo 15/02/2010, 17:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 2 meses
Puntos: 0
Sonrisa Respuesta: imprimit desde applet

hola megajandro... como estas.. mira.. que e probao.. tu codigo... montandolo en un servidor.. pero m genera un error... de ejecucion... del applet... algo creo q de permisos... apesar que le he bajado la seguridad del browser al minimo... el errror es :

java.security.Access.Control Exception: Access denied (java.io.FilePermission \read)

pero cuando lo ejecuto de forma local.. es decir... tengo todos los archivos en el escritorio del pc... no m sale error pero no m imprime nada.... que podra ser...??? y por cierto.. toy buscando algo como lo q tu explicas para poder imprimir directamente,, sin cuadro de confirmacion de impresora.. creo q esto m sirve pero no m funciona.. toy utilizando php.. javascript... y pues esto ultimo q fue applet.. porq no vi otra opcion para imprimir directamente.....

anexo el codigo.....

<html>
<head>
<script>
var jsVar = "Hello World from jsVar";

function jsFnct() {
return "Hello World from jsFnct";
}

function imprime()
{
var applet = document.getElementById('idApplet'); //Objeto del applet embebido en la pagina
var dato = document.getElementById('datito').value;
applet.rellenaListaConFicheroDeDirectorioRaiz(dato );
}
</script>

</head>
<body>
<!-- El applet, con un id que permita identificarlo -->
<p>
<applet id="idApplet" code="AppletAccessor.class" width="200" height="100">
<PARAM NAME="first" VALUE="&{jsVar};">
<PARAM NAME="second" VALUE="&{jsFnct()};">
<PARAM NAME="third" VALUE="&{'hello world'.toUpperCase() + ' from js Expression'};">
</applet>
</p>
<!-- Un boton que al pulsarlo llame al metodo pulsado() de javascript -->
<FORM name="formDisplay">
<INPUT TYPE="button" NAME="boton" VALUE="imprime" onClick="imprime()"></INPUT>
<INPUT TYPE="text" NAME="datito" id="datito" VALUE="" ></INPUT>
</FORM>
</body>
</html>

///////////////
y el applet
///////////
import javax.swing.*;
import javax.swing.table.*;

import java.awt.print.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.Dimension;
import java.io.*;

public class AppletAccessor extends JApplet
{
private static final long serialVersionUID = 3562328307659746629L;
private DefaultListModel modelo = new DefaultListModel();
public void init()
{
JList lista = new JList(modelo);
JScrollPane scroll = new JScrollPane(lista);
add(scroll);
add(new Label(getParameter("first")));
add(new Label(getParameter("second")));
add(new Label(getParameter("third")));
}

public void rellenaListaConFicheroDeDirectorioRaiz(String datoImprimir)
{
System.out.println(datoImprimir);
File directorioRaiz = new File("/");
String [] ficheros = directorioRaiz.list();
for (int i=0;i<ficheros.length;i++)
modelo.addElement(ficheros[i]);
modelo.addElement(datoImprimir);
}
}

ya no se que hacer... ayuda pòr favor............
muchas gracias por la atencion prestada..................

Etiquetas: applet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:47.