2012-01-17 73 views
6

Bibliotecas/herramientas utilizadas: 1) Jasper Reports 2) iReport 3) de JavaJasper Reports - Custom Generación de código de barras

yo ya he generado algunos códigos de barras estándar para mis informes, pero esta vez, estoy tratando de generar un código de barras personalizado, para lo cual tengo un archivo de fuente custom-barcode.ttf. A partir de ahora, iReport admite 2 bibliotecas de códigos de barras: Barcode4j y Barbecue, que no admiten el código de barras personalizado que necesito. ¿Alguna idea para comenzar, sin demasiada sobrecarga de usar una nueva biblioteca (ya estoy usando Barcode4j)?

BTW, soy consciente de que ya existe una pregunta similar (custom barcode font) en este sitio.

+0

Si tiene custom-barcode.ttf, ¿es tan simple como poner un elemento de texto en el informe y usar esta fuente? – mdahlman

+0

mdahlman, analicé esto antes instalando la fuente a través del diseñador de iReport e insertando un campo de texto en el informe y configurando la propiedad pdfEmbedded. Mi intento no fue completo, pero de alguna manera eso no tenía sentido. De todos modos, intentaré esto de nuevo y te responderé. – bchetty

Respuesta

2

Acabo de probar la respuesta de @ mdahlman y funcionó. Genere el valor "CODE123" usando un barcode39 font (gratis) y Jaspersoft Barbecue. Sample Barcode

Establecer el tamaño no es muy fácil con la fuente pero el resultado es el mismo. Verifiqué el código de barras usando Barcode Scanner en mi teléfono Android (puedo ver que también es visualmente similar). La razón por la que esto funcionó para mí, probablemente la misma razón por la que la prueba de @bchetty no funcionó, es porque Barcode39 no tiene un dígito de control. Es una traducción de 1 a 1, excepto con un asterisco inicial y final (*) adjunto a los datos. Si desea usar un ttf para generar un tipo de código de barras que tenga un dígito de control, necesitará una función (jar externo como el que mencionó) para codificarlo. Barcode39 no necesita una función ya que es solo "*" + V${data} + "*".

+0

No verifiqué tu respuesta, pero sé que lo que dijiste es correcto. Entonces, seleccionando tu respuesta como respuesta. Gracias. :) – bchetty

1

Dado que tiene custom-barcode.ttf, realmente se puede tratar como texto. Entonces, sus pasos son los siguientes:

  1. Cree una extensión de fuente en iReport para custom-barcode.ttf.
  2. Cree un campo de texto en el informe con una expresión relevante.
  3. Establezca la fuente del campo de texto en "código de barras personalizado" (o lo que usted llame su extensión de fuente). Juega con el tamaño de letra para obtener el resultado deseado.

El uso de una fuente personalizada para un código de barras podría considerarse un truco. Pero lo que le falta en flexibilidad lo compensa en simplicidad.

+0

mdahlman, los requisitos de mi cliente han cambiado. Entonces, no podría ponerme a trabajar en esto. Entonces, perdón por la respuesta tardía. De todos modos, quería una respuesta para esto y, por lo tanto, la recompensa. Lo intenté y funcionó. Entonces, muchas gracias por la respuesta. Lo intenté antes de poner una recompensa en esta pregunta también, pero de alguna manera no pude ver el código de barras en la vista previa, porque me gustaría obtener una vista previa de HTML. Lo cambié a la vista previa en PDF y funcionó. :) – bchetty

+0

mdahlman, tuve la oportunidad de probarlo con un escáner de código de barras y el código de barras generado mediante el uso de la lógica anterior, es ininteligible. Entonces, esta no es la respuesta. Siempre me he preguntado sobre esto, como si fuera tan fácil generar un código de barras, ¿por qué alguien usaría muchos archivos jar como dependencias para generar códigos de barras? De todos modos, la lógica anterior genera algún tipo de código de barras (debido a la fuente), pero no es realmente legible por la máquina. – bchetty

+0

El uso de una fuente para generar códigos de barras es realmente un truco (como mencioné originalmente). ¿Qué pasa si haces que el texto sea negrita o cursiva? Esto no tiene ningún significado para los códigos de barras. ¿Qué ocurre si el cliente HTML no tiene esta fuente (que será cierta casi siempre)?Entonces no puedes usar esto en HTML. Una solución mucho más limpia es generar una imagen. Es por eso que el código de barras4j, la barbacoa y ZXing hacen eso. Pero ese es un nivel de trabajo diferente (codificación Java). Dado el punto de partida de que tiene un .ttf que pretende generar códigos de barras ... entonces necesita aplicarlo a un campo de texto. – mdahlman