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}
    ]
});