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

Ayuda codigo applet impresion con errores

Estas en el tema de Ayuda codigo applet impresion con errores en el foro de Java en Foros del Web. hola a todos tengo un problema con este codigo de un applet que imprime en el cliente, tiene algunos errores y en realidad soy nuevo ...
  #1 (permalink)  
Antiguo 25/10/2010, 10:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Ayuda codigo applet impresion con errores

hola a todos tengo un problema con este codigo de un applet que imprime en el cliente, tiene algunos errores y en realidad soy nuevo en java alguien q me pudiera ayudar se los agradeceria

Código java:
Ver original
  1. package mx.com.lmp.erp.print;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.io.BufferedInputStream;
  5. import java.io.DataInputStream;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.net.URL;
  11. import java.net.URLConnection;
  12. import java.security.AccessController;
  13. import java.security.PrivilegedAction;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. import javax.swing.JFrame;
  17. import net.sf.jasperreports.engine.JRException;
  18. import net.sf.jasperreports.engine.JRExporterParameter;
  19. import net.sf.jasperreports.engine.JasperPrint;
  20. import net.sf.jasperreports.engine.JasperPrintManager;
  21. import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
  22. import net.sf.jasperreports.engine.export.JRPrintServiceExporterParameter;
  23. import net.sf.jasperreports.engine.print.JRPrinterAWT;
  24. import net.sf.jasperreports.engine.xml.JRPrintXmlLoader;
  25. import net.sf.jasperreports.view.JRViewer;
  26.  
  27. public class AppletPrint extends javax.swing.JApplet {
  28.  
  29. /** Initializes the applet AppletPrint */
  30. public void init() {
  31. try {
  32. this.urlService = getParameter("urlService");
  33. java.awt.EventQueue.invokeAndWait(new Runnable() {
  34. public void run() {
  35. initComponents();
  36. }
  37. });
  38. } catch (Exception ex) {
  39. ex.printStackTrace();
  40. }
  41. }
  42.  
  43.  
  44. private void initComponents() {
  45. jPanel1 = new javax.swing.JPanel();
  46. jBtnImprimir = new javax.swing.JButton();
  47.  
  48. setLayout(new java.awt.BorderLayout());
  49.  
  50. jBtnImprimir.setText("Imprimir");
  51. jBtnImprimir.addActionListener(new java.awt.event.ActionListener() {
  52. public void actionPerformed(java.awt.event.ActionEvent evt) {
  53. jBtnImprimirActionPerformed(evt);
  54. }
  55. });
  56.  
  57. jPanel1.add(jBtnImprimir);
  58.  
  59. add(jPanel1, java.awt.BorderLayout.CENTER);
  60.  
  61. }
  62.  
  63. private void jBtnImprimirActionPerformed(java.awt.event.ActionEvent evt) {
  64. comunicacionServer();//para recibir los datos del server
  65. }
  66.  
  67.  
  68. // Variables declaration - do not modify
  69. private javax.swing.JButton jBtnImprimir;
  70. private javax.swing.JPanel jPanel1;
  71. // End of variables declaration
  72. //Guardara la url del servlet al que se comunicara para imprimir
  73. private String urlService;
  74.  
  75. private void comunicacionServer(){
  76.  
  77. int in=0;
  78. long tamFile=0;
  79.  
  80. /* Primero creamos la URL para la conexión. Tiene sentido construir la
  81. dirección de esta forma tan "complicada" puesto que el applet solo puede
  82. establecer conexiones con su servidor, y así, al construir la dirección
  83. dinámicamente, no tenemos que retocar el código al irnos a otro servidor.
  84. En todo caso, lo siguiente sería válido:
  85. URL direccion = new URL ("http://www.javahispano.com/servlet/MiServlet");
  86. */
  87. URL pagina = this.getCodeBase();
  88. String protocolo = pagina.getProtocol();
  89. String servidor = pagina.getHost();
  90. int puerto = pagina.getPort();
  91. //String servlet = "/servlet/MiServlet";/ServletEnviaReport
  92. String servlet = "";
  93. if ( this.urlService != null && !this.urlService.equals(""))
  94. servlet = this.urlService;
  95. else
  96. servlet = "/PruebaApplet/ServletEnviaReportes";
  97.  
  98. URL direccion = null;
  99. URLConnection conexion = null;
  100. try {
  101. direccion = new URL(protocolo, servidor, puerto, servlet);
  102. conexion = direccion.openConnection();
  103. System.out.println(" Url del urlService " + direccion.toString());
  104. } catch (IOException ex) {
  105. ex.printStackTrace();
  106. }
  107.  
  108. /*Lo siguiente es decirle al navegador que no use su
  109. cache para esta conexión, porque si lo hace vamos a
  110. tener un página estatica, y para eso no nos metemos
  111. en estos líos ;-). */
  112. conexion.setUseCaches(false);
  113.  
  114. /* Ahora añadimos todas las cabeceras de HTTP que necesitemos, Cookies, contenido,
  115. autorizacion, etc. con el método:
  116. conexion.setRequestProperty ("cabecera", "valor");
  117. Consultar la especificación de HTTP para más detalles. Por ejemplo, para decir
  118. que preferentemente hablamos español: */
  119.  
  120. conexion.setRequestProperty("Accept-Language", "es");
  121.  
  122.  
  123. BufferedInputStream buffer = null ;
  124. try {
  125.  
  126.  
  127. /* Procesamos la información de la forma adecuada, según se
  128. trate de datos ASCII o binarios. */
  129. //Obtenemos el stream de entrada para leer la informacion que nos envie el
  130. //server
  131. DataInputStream dataIn = new DataInputStream(conexion.getInputStream());
  132. buffer = new BufferedInputStream(conexion.getInputStream());
  133. // Recibo el numero de archivos que enviara el servidor
  134. int numArchivosRecibir = dataIn.readInt();
  135. System.out.println(" Numero de archivos para imprimir " + numArchivosRecibir);
  136.  
  137. // Recibe los archivos
  138. String nameFiles[] = new String[numArchivosRecibir];
  139. File f = null;
  140. File files[] = new File[numArchivosRecibir];
  141. FileOutputStream ouputStream = null;
  142.  
  143. for(int k = 0; k < f =" this.fileTemp(dataIn.readUTF(),null);" tamfile =" dataIn.readLong();" ouputstream =" new" j =" 0;" datain =" null;" buffer =" null;" ouputstream =" null;" inputstream =" null;" jasperprintlist =" new" j =" 0;" inputstream =" new">
  144.  
  145. /*Aqui es donde se cargan los datos recibidos del server y se lanza a la impresion*/
  146. JasperPrint jsprint = JRPrintXmlLoader.load(inputStream);
  147. JasperPrintManager.printReport(jsprint,true);
  148. }
  149.  
  150. } catch (JRException e1) {
  151. e1.printStackTrace();
  152. }
  153.  
  154. //borramos los archivos temporales
  155. for(File fi : files ){
  156. fi.delete();
  157. }
  158.  
  159. } catch (IOException ex) {
  160. ex.printStackTrace();
  161. }
  162. }
  163.  
  164. public void ejecutaConJavascript (final String urlConParametros){
  165.  
  166. AccessController.doPrivileged(new PrivilegedAction() {
  167. public Object run() {
  168. try {
  169. comunicacionServer(urlConParametros);
  170. } catch(Exception e) {
  171. e.printStackTrace();
  172. return false;
  173. }
  174. return null;
  175. }
  176. });
  177. }
  178.  
  179. public void comunicacionServer(String urlConParametros) {
  180. this.urlService = urlConParametros;
  181. this.comunicacionServer();
  182. }
  183.  
  184. private File fileTemp (String name, String suffix) {
  185. try {
  186. return File.createTempFile(name,suffix);
  187. } catch (IOException ex) {
  188. ex.printStackTrace();
  189. return null;
  190. }
  191. }
  192.  
  193.  
  194. }

Etiquetas: applet, impresion
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:28.