JSReports JSReports

Menu
Content
Por KyMAN. Creado a fecha 2022/04/22. Última modificación a fecha 2022/04/22.

Bugs

En esta sección se catalogarán todos los Bugs y el estado conforme a si están o no arreglados o si se están tratando.

Cabeceras y pies dispares en UDF

Las cabeceras y pies de página salen en las páginas impares en UDF. El problema recae principalmente en que los etiquetados y marcas de MS no son compatibles con las de UDF, siendo para UDF el 'title="header"' para la cabecera y el 'title="footer"' para el pie; mientras que en MS sería el atributo Style "mso-element:header;" para la cabecera y "mso-elemento:footer;" para el pie. Está globalizado, pero el método UDF sólo muestra las cabeceras y los pies en las páginas impares.

- Arreglar el fallo para que salgan en todas las páginas.

Hay una pseudosolución que aportaron en la respuesta del Link que se muestra a continuación se muestra una pseudosolución (Digo pseudo porque no es una cabecera ni pié real, sino que se usa una tabla que contiene ambas cosas la cual repite su THEAD y su TFOOT en todas las páginas) pero al no ser una cabecera y pié reales no lo establecí, pero decir que en caso de extrema necesidad, ésta puede ser aplicada perfectamente.

https://stackoverflow.com/questions/1360869/how-to-use-html-to-print-header-and-footer-on-every-printed-page-of-a-document#answer-51371081

Problemas cabeceras y piés PDF

El jsPDF no fue diseñado para trabajar en profundidad el HTML de hecho, no es capaz ni de interpretar CSS ni de adjuntar las fuentes de forma autónoma, pero el problema viene a la hora de establecer un elemento HTML pues, aunque establezcas la página donde quieras establecerlo, éste siempre irá a la primera página, y si estableces un margen o posición "top" muy alto, éste desaparece si no es nativo para estar ahí. El HTML se superpondrá a lo que ya hay en el documento y no permite establecer márgenes diferentes a distintos HTML, por lo que el tema de las cabeceras queda totalmente descartado mediante HTML nativo.

  • Conseguir un sistema que permita generar cabeceras y piés de página contra HTML y CSS.
  • Probar el sistema de impresión HTML de CSS para establecer una tabla que por página repita su THEAD y su TFOOT, como la trampa para establecer cabeceras que encontré para DOCs.
IMPORTANTE: Actualmente, este sistema funciona pero es a partir de la creación de una imagen contra el HTML y CSS dado lo que impide seleccionar texto entre otros problemas. No me preocupan los sistemas que migran de PDF a DOC por los OCR.
NOTA: Para arreglar este problema se optó por hacer uso de la dependencia del propio jsPDF: html2canvas, y de ahí se extrae una imagen en URI Base64 que es la que se usa para dichos fines.

Problemas con CSS

En los documentos DOC, la etiqueta STYLE que contiene el CSS, tiene órdenes y sentencias muy específicas que no pueden ser flexibilizadas por lo que hay que hacer una adaptación de la misma para que funcionen.

- Crear adaptación para que se generen.

Básicamente se reutilizó el sistema hecho para los PDF.

Corregir tamaños IMG

Las imágenes, en os documentos DOC tienen el problema del valor de atributo "width" y "height" auto, que cogen como valor su ancho o alto, consecutivamente.

- Conseguir proporcionar las imágenes.

Para arreglar dicho fallo se hice un análisis del CSS contra las imágenes en su precarga y establecer un tamaño relativo con respecto al formato de página, tamaño de la misma y el tamaño de la imagen.

Tamaños de tabla

En los DOC, las tablas no hacen caso de los atributos de tamaño de CSS, requiriendo de hacer uso del atributo WIDTH.

Por otro lado, las celdas tampoo hacen caso de su ancho, teniendo que usar la etiqueta COLGROUP y sus subetiquetas COL.

  • Migrar el ancho en CSS al atributo WIDTH de la tabla.
  • Migrar el ancho de las columnas a los COL.
  • Corregir la porcentualidad de los COL.
IMPORTANTE: Los COL, en los DOC UDF ignora la unidad del atributo y no respeta la proporción de peso, quedando sobre una proporción a 50000. Automáticamente lo tramita desde los DPI en medidas por pixel; y por el tamaño de página en mm, cm, in, etc; así como por los propios porcentajes. Creo que es algo que hay que mejorar, pero que para salir del paso llega.

Medidas mm en DOC UDF

Cuando tratabajamos los márgenes CSS de las cabeceras y los pies de página, éstos se establecen en mm de forma forzada aunque le pongas otra unidad de medida.

NOTA: Al ser un atributo CSS especial para MS puede ser que se condicione forzadamente en mm? No hay información a penas acerca de ello.

- Arreglar el Bug, o al menos, adaptarlo para que salga en otras unidades establecidas en CSS.

NOTA: Actualmente está trabajando en mm, de la misma forma que trabaja esta librería.

PDF en Chrome

Por algún motivo, en Chrome no crea el PDF. Queda como totalmente apagado y sin terminar el proceso.

- Arreglar el Bug.

El Bug parece ser que era porque el evento OnLoad del IFRAME que gestiona los html2canvas no existe en Chrome salvo que éste venga con una URL, por lo que se decidió hacer un Timeout para solventar la precarga del objeto.

Files