Tienen márgenes para el contenido, pero no de fondo en cada página cuando la conversión de la impresión de HTML a PDF

0

Pregunta

Estoy trabajando en un sitio web que necesita para exportar el contenido de una página web como pdf, pero tiene que respetar las condiciones siguientes:

  • El fondo tiene que ser totalmente impreso en cada página
  • El contenido no debe solapar el fondo

Desde el sitio web utiliza PHP traté de usar mPDF que he usado anteriormente en otro sitio web de PHP que tenía las mismas condiciones. mPDF mostró el fondo completo en cada página del archivo pdf, incluso cuando la página no estaba completamente llena de contenido y pude establecer los márgenes que afectó el contenido pero no el fondo que aún cubrían la totalidad de la página.

Lamentablemente, mPDF no está trabajando con esta nueva página web, muy probablemente debido a que utiliza bootstrap y flex diseños (que me devolvió un pdf con cerca de un millar de páginas, en su mayoría en blanco, otros con muy ampliada en la piezas de la página), en la parte superior de que parte del contenido se cambia por javascript antes de presentarlo para el usuario y que no fue tomado en cuenta por mPDF (me di cuenta de que estaba cuando me he quitado de bootstrap.css, lo que me permitió ver el resultado de la conversión).

Así que me cambié a titiritero https://github.com/puppeteer/puppeteer que imprime el contenido bien a través de chrome bajo el capó, pero estoy teniendo algunos problemas. El primer problema fue que no pude imprimir el fondo completo en cada página, pero he resuelto mientras escribía esta cuestión mediante la creación de un div con position: fixed y width y height en 100% que funciona como telón de fondo

El segundo problema es que cuando me puse al margen del titiritero (que al final son la misma como la impresión de los márgenes en chrome) que afectan a fondo demasiado (esto es un problema incluso antes de la creación de la fija div), así que no puede encontrar una manera de tener el texto no se superponen el fondo

Aquí puedes ver un ejemplo: https://stackblitz.com/edit/web-platform-vlfqfz?file=index.html

Si se abre la vista previa en otra pestaña y pruebe a imprimir se puede ver el problema que estoy enfrentando

google-chrome printing puppeteer
2021-11-23 10:09:26
1

Mejor respuesta

0

Así que, al parecer, no es posible hacer lo que yo estaba preguntando exactamente en esta pregunta, así que he encontrado una solución alternativa.
Que cortar la parte superior y la parte inferior del fondo y se utiliza como imágenes dentro de titiritero con el encabezado y pie de página. Me tomó un tiempo para hacer las imágenes coinciden con el position: fixed div que actúa como telón de fondo (que ahora contiene sólo los lados del fondo), pero la configuración de un ancho fijo en el cuerpo hizo el trabajo

2021-11-24 15:44:17

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................