• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

182
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error