Creé con éxito una lista usando la siguiente respuesta con flexbox en mi página HTML ¿Cómo mostrar 3 elementos por fila en flexbox?
Tengo la necesidad de crear un PDF con estos datos y estoy usando wkhtmltopdf (https://wkhtmltopdf.org/) que también funciona bien, sin embargo, el PDF generado tiene todos mis Elementos de lista en 1 columna larga en lugar de 3 por fila.
Parece que el CSS no se está procesando cuando se está generando el PDF. Se agradece cualquier información.
Esto funcionó para mí:
.row {
display: -webkit-box; /* wkhtmltopdf uses this one */
display: flex;
-webkit-box-pack: center; /* wkhtmltopdf uses this one */
justify-content: center;
}
.row > div {
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
}
.row > div:last-child {
margin-right: 0;
}
Ver https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1522 para más información
-
¡Buena llamada!
webkit-box
era el componente faltante que no pude averiguar.– explosión
7 de abril de 2020 a las 18:16
-
¡Esto también funcionó para mí!
–Agus Sapurta Sijabat
15 de noviembre de 2021 a las 7:03
-
Si bien esta es una solución, no es de lejos la solución. webkit-box ni siquiera se acerca a flex. Espero que wkhtmltopdf acepte flex pronto, pero realmente lo dudo ya que flex estuvo fuera de servicio desde 2013 🙁
– Bengala
13 dic 2021 a las 23:40
-
@Bengala: wkhtmltopdf usa el QtWebKit original, que está abandonado. Los desarrolladores han pedido ayuda para pasar a algo más nuevo, pero no ha habido suficientes voluntarios. Consulte wkhtmltopdf.org/status.html para ver la historia completa.
– Ben Scott
5 oct a las 16:18
Resolví este problema usando:
equivalente de display:flex;
==> display: -webkit-box;
equivalente de justify-content: space-between;
==> -webkit-box-pack: justify;
Algunas informaciones útiles provenientes de:
https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1522
saschanos
Usé autoprefixer en mi aplicación para agregar prefijos automáticamente. Solo necesitas actualizar browsersList
con ie >= 9
.
Intente disminuir el ancho de las columnas flexibles. Por ejemplo cuando traté de hacer 50/50 columnas tuve que poner un ancho de 49.8% en vez de 50%. Espero eso ayude.
Rohit Singh
Para usar flex o cajas al convertir a pdf, necesita webkit Ejemplo: –
display: flex;
display: -webkit-flex;
para justificar el contenido y alinear los elementos que debe usar
-webkit-align-self: flex-end;
align-self: flex-end;
webkit-justify-content: space-between;
justify-content: space-between;
Como arreglo para Bootstrap 5, trabajando con wkhtmltopdf 0.12.*, encontré y completé el siguiente estilo
<style>
/* Fix wkhtmltopdf compatibility with BS flex features */
.row {
display: -webkit-box;
display: flex;
-webkit-box-pack: center;
justify-content: center;
}
.row>div {
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
}
.row>div:last-child {
margin-right: 0;
}
/* Fix wkhtmltopdf compatibility with BS tables borders */
/* Requires cellspacing="0" on table to prevent spacing */
table {
border-collapse: separate !important;
}
th,
td {
border-top: none;
border-left: none;
border-right: none;
}
</style>
fuente me salvó el día al actualizar de bs 4 a bs 5.