Pregunta

He creado una aplicación web que puede verse como un formulario de solicitud demasiado complicado. Hay muchas áreas de texto con un límite de caracteres dado. Después del envío del formulario, suceden varias cosas y una de ellas es la generación de PDF.

El texto se consulta desde la base de datos y se inserta en la plantilla PDF creada en iReports. Esto funciona bien, pero el mayor dolor es el texto desbordado.

El número máximo de caracteres se establece en función del texto "promedio". Pero a veces las personas prefieren escribir con MAYÚSCULAS o agregar muchos avances de línea para formatear su texto. Esto hace que el texto del usuario desborde el espacio dado en PDF. Lamentablemente, el documento PDF debe verse como un formulario de solicitud real, por lo que no puedo permitir espacio ilimitado.

¿Qué tipo de enfoques ha utilizado para abordar esto?

  • ¿Limpiar / restringir la entrada del usuario?
  • Calcular el requisito de espacio del texto en función de las métricas de fuente?
  • ¿Proporciona una vista previa del PDF? (usuarios demasiado malos no pueden cambiar su entrada después del envío ...)
¿Fue útil?

Solución

Idealmente, calcule el requisito en función de las métricas. No sé cómo iReports maneja el texto, pero con iText, presenta todo por sí mismo, solo presenta los datos como un documento de transmisión, por lo que no nos preocupamos de desbordar el texto.

Sin embargo, es posible que iReport no lo admita, o puede que tenga que ajustar el diseño del PDF dentro de ciertos límites. Intentaría limpiar la entrada (es decir: si es todo mayúsculas, minúsculas / mayúsculas / minúsculas), elimine espacios en blanco adicionales. Si la limpieza de la entrada no se puede hacer de manera confiable, o la gente todavía está superando eso, también lo restringiría.

Como último recurso, presentaría el PDF para que el usuario lo autorice. Realmente, a los usuarios no se les debe dar más trabajo para hacer, y no lo van a hacer de todos modos.

Otros consejos

Sus propias soluciones sugeridas a su problema son todas buenas. Probablemente, la pregunta más importante que debe haber respondido es cómo debería ser su PDF cuando los datos que se mostrarán en un campo no encajan. ¿Alguna vez necesita la " respuesta completa " por cualquier otra cosa? Cuando sepa la respuesta a estas, sus opciones se reducirán.

Por ejemplo, si un campo debe limitarse a 1/2 página, y los usuarios a veces ingresan más de 1/2 página de texto, puede   1) limite la entrada del usuario: en el envío, calcule el tamaño (utilizando las métricas de fuente como dijo) y rechace el envío hasta que se corrija. Esto supone que puede obligar legítimamente al usuario a reducir su entrada de datos.   2) aceptar la entrada del usuario y truncar en la pantalla de este informe. Algunos sistemas usan " ... " para indicar que los datos se han truncado y pueden proporcionar un hipervínculo (incluso dentro del PDF) para obtener más información.

Proporcionar una vista previa funcionaría realmente bien, pero solo si los usuarios son buenos para verificar y corregir y su sistema puede manejar la carga adicional que esto generará.

¿Tiene control de la fuente que se utiliza al generar el PDF? Si es así, buscaría una fuente en la familia Monospace. Esto le dará una longitud constante para un número determinado de caracteres, independientemente de la puntuación, mayúsculas, etc.

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