• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

183
Vistas
¿Existe una opción para alinear a la derecha el texto en el atributo messageBottom de la exportación de PDF de DataTables?

Creé una exportación de pdf usando Datatables y estoy mostrando un mensaje debajo de la tabla exportada usando messageBottom . El problema es que se alinea automáticamente a la izquierda y me gustaría que el valor se alineara a la derecha, debajo de la última columna de la tabla exportada. ¿Hay una manera de lograr esto? Revisé la documentación de Datatable pdfHtml5 pero parece que no puedo entender cómo ajustar la alineación del texto en messageBottom o messageTop .

Aquí está mi código inicializando la tabla:

 var table = $('#exampleTable').DataTable( { dom: 'Bfrtip', buttons: [ { extend: 'pdfHtml5', messageBottom: function() { return 'message to be displayed at bottom' }, customize: function ( doc ) { /* here I am aligning text in a column to the right */ var rowCount = table.rows().count() + 1; for (i = 0; i < rowCount; i++) { doc.content[2].table.body[i][3].alignment = 'right'; }; } } ] } );
almost 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

en la version de datable que estoy usando lo he solucionado asi. 'messageBottom' usa el estilo 'mensaje', por lo que agregar la siguiente línea en la personalización me resolvió el problema.

 doc.styles.message.alignment = "right";

El problema con esta solución es que 'messageTop' también usa el estilo 'message', por lo que también se alineará a la derecha, pero en mi caso solo estoy usando 'messageBottom'. No sé si hay una mejor manera.

mi ejemplo:

 { extend: 'pdf', messageBottom: function() { return "\n\nTOTAL VENCIMIENTO: "+$('#header-vcto-total span').text()+"\n" }, customize: function(doc) { /** this line changes the alignment of 'messageBottom' and 'messageTop' **/ doc.styles.message.alignment = "right"; doc.content[1].table.widths = [ '40%', '25%', '17.5%', '17.5%']; var rowCount = doc.content[1].table.body.length; for (i = 1; i < rowCount; i++) { doc.content[1].table.body[i][1].alignment = 'center'; doc.content[1].table.body[i][2].alignment = 'center'; doc.content[1].table.body[i][3].alignment = 'right'; doc.content[1].table.body[i][3].text += ' €'; }; } }

Espero que le sea útil. Un saludo.

almost 3 years ago · Juan Pablo Isaza Denunciar

0

La respuesta de @zhexirox alinea a la derecha la parte inferior del mensaje, el único problema es que también alinea la parte superior del mensaje de la misma manera. Si solo desea alinear / formatear el contenido debajo de la tabla, puede usar doc.content.push Aquí hay un ejemplo:

 customize: function(doc) { doc.content.push( { margin: [15, 20, 0, 0 ], alignment: 'left', text: 'example message' }); }
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda