DataTables.net - PDF export customization
customization of PDF report SO: http://stackoverflow.com/questions/35921013/datatables-net-pdf-export-report-customization Further: http://live.datatables.net/poqoyezo/24/
by Sree K
HTML
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>
<script src="//cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/pdfmake.min.js"></script>
<script src="//cdn.rawgit.com/bpampuch/pdfmake/0.1.18/build/vfs_fonts.js"></script>
<script src="//cdn.datatables.net/buttons/1.1.2/js/buttons.html5.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.0.1/js/buttons.colvis.min.js"></script>
<table id="example" class="display" cellspacing="0"></table>
JavaScript
$('#example').DataTable({
dom: 'Bfrtpi',
buttons: [
// 'colvis', // custom columns include JS https://cdn.datatables.net/buttons/1.0.1/js/buttons.colVis.min.js
// 'colvisRestore', // restore default columns include JS https://cdn.datatables.net/buttons/1.0.1/js/buttons.colVis.min.js
'pdf', { // default PDF and customized PDF
extend: 'pdfHtml5',
title: 'Random Persons', // report header/title
orientation: 'landscape',
pageSize: 'A4',
pageMargins: [ 0, 0, 0, 0 ], // try #1 setting margins
margin: [ 0, 0, 0, 0 ], // try #2 setting margins
text: '<u>E</u>xport Page (PDF)',
key: { // press E for export PDF
key: 'e',
altKey: false
}
, content: [{ style: 'fullWidth' }]
, styles: { // style for printing PDF body
fullWidth: { fontSize: 18, bold: true, alignment: 'right', margin: [0,0,0,0] }
},
download: 'download',
exportOptions: {
modifier: {
pageMargins: [ 0, 0, 0, 0 ], // try #3 setting margins
margin: [ 0, 0, 0, 0 ], // try #4 setting margins
alignment: 'center'
}
, body : {margin: [ 0, 0, 0, 0 ], pageMargins: [ 0, 0, 0, 0 ]} // try #5 setting margins
, columns: [0,1] //column id visible in PDF
, columnGap: 1 // optional space between columns
}
}],
columns: [
{
title: 'Person name',
defaultContent: '', // if no content set in field
data: 'name'
},
{
title: 'Person age',
type: 'num', // this would be a number field
data: 'age'
}
],
data: [
{name: 'John Doe', age: 25},
{name: 'Michael Jackson', age: 30},
{name: 'Tom Jones', age: 32},
{name: 'Monica Beluchi', age: 34}
]
});