Pregunta

Nuestra aplicación es una configuración de cliente / servidor, donde el cliente es una aplicación Java independiente que siempre se ejecuta en Windows, y el servidor está escrito en C y puede ejecutarse en una máquina Windows o Unix. Además, utilizamos Perl para hacer varios informes. En general, la forma en que funcionan los informes es que generamos un archivo de texto o un archivo xml en el servidor en Perl y luego lo enviamos al cliente. El cliente luego usa FOP o similar para convertir el xml en un pdf. En el caso del archivo de texto o el eventual pdf, el usuario selecciona una impresora a través del cliente java y luego el archivo copiado se imprime en la impresora seleccionada.

Uno de nuestros " informes " Se utiliza para crear códigos de barras. Esta es diferente en que usa Perl para obtener / formatear algunos datos de la base de datos y luego los envía a una aplicación C que crea algunos datos de impresión Raw. Luego, estos datos se envían directamente a la impresora (a través de un conducto simple en Unix o una aplicación personalizada en Windows.

El problema es que esto de ninguna manera respeta la impresora seleccionada por el usuario en el cliente Java. Además, no podemos mostrar una vista previa en dicho cliente. Idealmente, me gustaría poder convertir los datos de impresión sin procesar en un ps / pdf o similar en el servidor (o incluso en el cliente) y luego enviar ESO a la impresora desde el cliente. Esto me permitiría mostrar una vista previa, así como imprimir en la impresora seleccionada.

Si no puedo generar una vista previa, incluso copiar solo los datos sin procesar en un archivo al cliente Java y luego enviarlos a la impresora probablemente sea lo suficientemente bueno. " No he podido encontrar nada que sea lo que estoy tratando de lograr, por lo que, por supuesto, cualquier ayuda sería apreciada.

Editar: Los datos RAW están en formato PCL. Logré conciliar la fuente con una guía de referencia de lenguaje PCL.

¿Fue útil?

Solución 3

Descubrí una forma de generar los códigos de barras usando XSL-FO directamente. Este es el " correcto " La respuesta basada en nuestra arquitectura y tratar de hacer cualquier otra cosa hubiera sido un simple truco.

Otros consejos

¿Ha visto iText ?

Necesitará encontrar alguna forma de interpretar el formato RAW, que probablemente sea un lenguaje de impresora como PCL o HPGL en un formato que pueda usar. Probablemente esto se haga mejor en el servidor.

Puede encontrar un intérprete PCL basado en java en http://openpcl.sourceforge.net/ - No tengo experiencia con eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top