datatable print complex header print previewLINQ query on a DataTableHow to print a number with commas as thousands separators in JavaScriptPreview an image before it is uploadedHow can I pretty-print JSON using JavaScript?Android get text from htmlHow does Access-Control-Allow-Origin header work?offsetting an html anchor to adjust for fixed headerPrinting with Javascript Preview IssuePrint repeatable multiple header in HTMLdatatable print multiple thead <tr>
What are the problems in teaching guitar via Skype?
Looking after a wayward brother in mother's will
A Mathematical Discussion: Fill in the Blank
Were pen cap holes designed to prevent death by suffocation if swallowed?
Solmization with syllables - du da di
Modern approach to radio buttons
Terminology about G- simplicial complexes
Would an object launched by the Catapult spell do full damage against a Scarecrow?
If a massive object like Jupiter flew past the Earth how close would it need to come to pull people off of the surface?
The Passive Wisdom (Perception) score of my character on D&D Beyond seems too high
What is the 中 in ダウンロード中?
Comment dit-on « I’ll tell you what » ?
What does it mean when you think without speaking?
What does uniform continuity mean exactly?
Glitch in AC sine wave interfering with phase cut dimming
How is character development a major role in the plot of a story
Why doesn't the Earth's acceleration towards the Moon accumulate to push the Earth off its orbit?
Different PCB color ( is it different material? )
What is the best linguistic term for describing the kw > p / gw > b change, and its usual companion s > h
Infinitely many hats
How current works
What caused the tendency for conservatives to not support climate change reform?
Why does the UK have more political parties than the US?
Draw a checker pattern with a black X in the center
datatable print complex header print preview
LINQ query on a DataTableHow to print a number with commas as thousands separators in JavaScriptPreview an image before it is uploadedHow can I pretty-print JSON using JavaScript?Android get text from htmlHow does Access-Control-Allow-Origin header work?offsetting an html anchor to adjust for fixed headerPrinting with Javascript Preview IssuePrint repeatable multiple header in HTMLdatatable print multiple thead <tr>
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
hi im working with datatable and its great but i have problem thats in complex header like this
<thead>
<tr><td>some text</td></tr>
<tr><td>some text</td></tr>
</thead>
now in showing page its like like this
when i hit print preview i gat result like this
that the first tr
in thead
is gone
i opened datatable.js file and i found this
var addRow = function ( d, tag )
var str = '<tr>';
for ( var i=0, ien=d.length ; i<ien ; i++ )
// null and undefined aren't useful in the print output
var dataOut = d[i] === null
return str + '</tr>';
;
// Construct a table for printing
var html = '<table class="'+dt.table().node().className+'">';
html += '<thead>';
// Adding logo to the page (repeats for every page while print)
if(config.repeatingHead.logo)
var logoPosition = (['left','right','center'].indexOf(config.repeatingHead.logoPosition) > 0) ? config.repeatingHead.logoPosition : 'right';
html += '<tr><th colspan="'+data.header.length+'" style="padding: 0;margin: 0;text-align: '+logoPosition+';"><img style="'+config.repeatingHead.logoStyle+'" src="'+config.repeatingHead.logo+'"/></th></tr>';
// Adding title (repeats for every page while print)
if(config.repeatingHead.title)
html += '<tr><th colspan="'+data.header.length+'">'+config.repeatingHead.title+'</th></tr>';
if ( config.header )
html += addRow( data.header, 'th' );
html += '</thead>';
html += '<tbody>';
for ( var i=0, ien=data.body.length ; i<ien ; i++ )
html += addRow( data.body[i], 'td' );
html += '</tbody>';
if ( config.footer && data.footer )
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
html += '</table>';
and its just add the last tr in thead
but i couldn't put the first tr with print preview
thanks a lot
this is a jsfiddle ex
when you preview the table its showing with tow row at thead
but in print preview its showing only on tr in thead
enter link description here
javascript html datatable
|
show 1 more comment
hi im working with datatable and its great but i have problem thats in complex header like this
<thead>
<tr><td>some text</td></tr>
<tr><td>some text</td></tr>
</thead>
now in showing page its like like this
when i hit print preview i gat result like this
that the first tr
in thead
is gone
i opened datatable.js file and i found this
var addRow = function ( d, tag )
var str = '<tr>';
for ( var i=0, ien=d.length ; i<ien ; i++ )
// null and undefined aren't useful in the print output
var dataOut = d[i] === null
return str + '</tr>';
;
// Construct a table for printing
var html = '<table class="'+dt.table().node().className+'">';
html += '<thead>';
// Adding logo to the page (repeats for every page while print)
if(config.repeatingHead.logo)
var logoPosition = (['left','right','center'].indexOf(config.repeatingHead.logoPosition) > 0) ? config.repeatingHead.logoPosition : 'right';
html += '<tr><th colspan="'+data.header.length+'" style="padding: 0;margin: 0;text-align: '+logoPosition+';"><img style="'+config.repeatingHead.logoStyle+'" src="'+config.repeatingHead.logo+'"/></th></tr>';
// Adding title (repeats for every page while print)
if(config.repeatingHead.title)
html += '<tr><th colspan="'+data.header.length+'">'+config.repeatingHead.title+'</th></tr>';
if ( config.header )
html += addRow( data.header, 'th' );
html += '</thead>';
html += '<tbody>';
for ( var i=0, ien=data.body.length ; i<ien ; i++ )
html += addRow( data.body[i], 'td' );
html += '</tbody>';
if ( config.footer && data.footer )
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
html += '</table>';
and its just add the last tr in thead
but i couldn't put the first tr with print preview
thanks a lot
this is a jsfiddle ex
when you preview the table its showing with tow row at thead
but in print preview its showing only on tr in thead
enter link description here
javascript html datatable
4
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
2
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
1
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39
|
show 1 more comment
hi im working with datatable and its great but i have problem thats in complex header like this
<thead>
<tr><td>some text</td></tr>
<tr><td>some text</td></tr>
</thead>
now in showing page its like like this
when i hit print preview i gat result like this
that the first tr
in thead
is gone
i opened datatable.js file and i found this
var addRow = function ( d, tag )
var str = '<tr>';
for ( var i=0, ien=d.length ; i<ien ; i++ )
// null and undefined aren't useful in the print output
var dataOut = d[i] === null
return str + '</tr>';
;
// Construct a table for printing
var html = '<table class="'+dt.table().node().className+'">';
html += '<thead>';
// Adding logo to the page (repeats for every page while print)
if(config.repeatingHead.logo)
var logoPosition = (['left','right','center'].indexOf(config.repeatingHead.logoPosition) > 0) ? config.repeatingHead.logoPosition : 'right';
html += '<tr><th colspan="'+data.header.length+'" style="padding: 0;margin: 0;text-align: '+logoPosition+';"><img style="'+config.repeatingHead.logoStyle+'" src="'+config.repeatingHead.logo+'"/></th></tr>';
// Adding title (repeats for every page while print)
if(config.repeatingHead.title)
html += '<tr><th colspan="'+data.header.length+'">'+config.repeatingHead.title+'</th></tr>';
if ( config.header )
html += addRow( data.header, 'th' );
html += '</thead>';
html += '<tbody>';
for ( var i=0, ien=data.body.length ; i<ien ; i++ )
html += addRow( data.body[i], 'td' );
html += '</tbody>';
if ( config.footer && data.footer )
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
html += '</table>';
and its just add the last tr in thead
but i couldn't put the first tr with print preview
thanks a lot
this is a jsfiddle ex
when you preview the table its showing with tow row at thead
but in print preview its showing only on tr in thead
enter link description here
javascript html datatable
hi im working with datatable and its great but i have problem thats in complex header like this
<thead>
<tr><td>some text</td></tr>
<tr><td>some text</td></tr>
</thead>
now in showing page its like like this
when i hit print preview i gat result like this
that the first tr
in thead
is gone
i opened datatable.js file and i found this
var addRow = function ( d, tag )
var str = '<tr>';
for ( var i=0, ien=d.length ; i<ien ; i++ )
// null and undefined aren't useful in the print output
var dataOut = d[i] === null
return str + '</tr>';
;
// Construct a table for printing
var html = '<table class="'+dt.table().node().className+'">';
html += '<thead>';
// Adding logo to the page (repeats for every page while print)
if(config.repeatingHead.logo)
var logoPosition = (['left','right','center'].indexOf(config.repeatingHead.logoPosition) > 0) ? config.repeatingHead.logoPosition : 'right';
html += '<tr><th colspan="'+data.header.length+'" style="padding: 0;margin: 0;text-align: '+logoPosition+';"><img style="'+config.repeatingHead.logoStyle+'" src="'+config.repeatingHead.logo+'"/></th></tr>';
// Adding title (repeats for every page while print)
if(config.repeatingHead.title)
html += '<tr><th colspan="'+data.header.length+'">'+config.repeatingHead.title+'</th></tr>';
if ( config.header )
html += addRow( data.header, 'th' );
html += '</thead>';
html += '<tbody>';
for ( var i=0, ien=data.body.length ; i<ien ; i++ )
html += addRow( data.body[i], 'td' );
html += '</tbody>';
if ( config.footer && data.footer )
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
html += '</table>';
and its just add the last tr in thead
but i couldn't put the first tr with print preview
thanks a lot
this is a jsfiddle ex
when you preview the table its showing with tow row at thead
but in print preview its showing only on tr in thead
enter link description here
javascript html datatable
javascript html datatable
edited Mar 26 at 19:31
Awar Pulldozer
asked Mar 22 at 7:13
Awar PulldozerAwar Pulldozer
283423
283423
4
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
2
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
1
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39
|
show 1 more comment
4
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
2
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
1
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39
4
4
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
2
2
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
1
1
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39
|
show 1 more comment
2 Answers
2
active
oldest
votes
You asked for a work-around and since it is already mentioned not a feature for Datatables at the moment. You could simply convert it to a PDF through grabbing only the tables contents. Then add styling for the print window without any libraries. It really is just a window.
It is just a matter of injecting the right style before loading the window. So we just need to make sure we grab the style outputted by datatables and inject that.
CSS
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
HTML
<div id="print-window">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
<tr>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>$320,800</td>
<td>Edinburgh</td>
<td>5421</td>
<td>t.nixon@datatables.net</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>$170,750</td>
<td>Tokyo</td>
<td>8422</td>
<td>g.winters@datatables.net</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>$86,000</td>
<td>San Francisco</td>
<td>1562</td>
<td>a.cox@datatables.net</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>$433,060</td>
<td>Edinburgh</td>
<td>6224</td>
<td>c.kelly@datatables.net</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</tfoot>
</table>
</div>
<input type="button" value="Print" onclick="pdf()" />
Javascript
function pdf()
let t = document.getElementById('print-window').innerHTML;
let style = "<style>";
style = style + "table width: 100%; font-size: 17px;";
style = style + "table, th, td border: solid 1px #DDD; border-collapse: collapse;";
style = style + "padding: 2px 3px;text-align: center;";
style = style + "</style>";
let win = window.open('', '', 'height=700,width=700');
win.document.write('<html><head>');
win.document.write('<title>Profile</title>');
win.document.write(style);
win.document.write('</head>');
win.document.write('<body>');
win.document.write(t);
win.document.write('</body></html>');
win.document.close();
win.print();
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
add a comment |
As discussed in this topic from Datatables website, this feature is not yet available.
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55294594%2fdatatable-print-complex-header-print-preview%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You asked for a work-around and since it is already mentioned not a feature for Datatables at the moment. You could simply convert it to a PDF through grabbing only the tables contents. Then add styling for the print window without any libraries. It really is just a window.
It is just a matter of injecting the right style before loading the window. So we just need to make sure we grab the style outputted by datatables and inject that.
CSS
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
HTML
<div id="print-window">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
<tr>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>$320,800</td>
<td>Edinburgh</td>
<td>5421</td>
<td>t.nixon@datatables.net</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>$170,750</td>
<td>Tokyo</td>
<td>8422</td>
<td>g.winters@datatables.net</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>$86,000</td>
<td>San Francisco</td>
<td>1562</td>
<td>a.cox@datatables.net</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>$433,060</td>
<td>Edinburgh</td>
<td>6224</td>
<td>c.kelly@datatables.net</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</tfoot>
</table>
</div>
<input type="button" value="Print" onclick="pdf()" />
Javascript
function pdf()
let t = document.getElementById('print-window').innerHTML;
let style = "<style>";
style = style + "table width: 100%; font-size: 17px;";
style = style + "table, th, td border: solid 1px #DDD; border-collapse: collapse;";
style = style + "padding: 2px 3px;text-align: center;";
style = style + "</style>";
let win = window.open('', '', 'height=700,width=700');
win.document.write('<html><head>');
win.document.write('<title>Profile</title>');
win.document.write(style);
win.document.write('</head>');
win.document.write('<body>');
win.document.write(t);
win.document.write('</body></html>');
win.document.close();
win.print();
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
add a comment |
You asked for a work-around and since it is already mentioned not a feature for Datatables at the moment. You could simply convert it to a PDF through grabbing only the tables contents. Then add styling for the print window without any libraries. It really is just a window.
It is just a matter of injecting the right style before loading the window. So we just need to make sure we grab the style outputted by datatables and inject that.
CSS
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
HTML
<div id="print-window">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
<tr>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>$320,800</td>
<td>Edinburgh</td>
<td>5421</td>
<td>t.nixon@datatables.net</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>$170,750</td>
<td>Tokyo</td>
<td>8422</td>
<td>g.winters@datatables.net</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>$86,000</td>
<td>San Francisco</td>
<td>1562</td>
<td>a.cox@datatables.net</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>$433,060</td>
<td>Edinburgh</td>
<td>6224</td>
<td>c.kelly@datatables.net</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</tfoot>
</table>
</div>
<input type="button" value="Print" onclick="pdf()" />
Javascript
function pdf()
let t = document.getElementById('print-window').innerHTML;
let style = "<style>";
style = style + "table width: 100%; font-size: 17px;";
style = style + "table, th, td border: solid 1px #DDD; border-collapse: collapse;";
style = style + "padding: 2px 3px;text-align: center;";
style = style + "</style>";
let win = window.open('', '', 'height=700,width=700');
win.document.write('<html><head>');
win.document.write('<title>Profile</title>');
win.document.write(style);
win.document.write('</head>');
win.document.write('<body>');
win.document.write(t);
win.document.write('</body></html>');
win.document.close();
win.print();
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
add a comment |
You asked for a work-around and since it is already mentioned not a feature for Datatables at the moment. You could simply convert it to a PDF through grabbing only the tables contents. Then add styling for the print window without any libraries. It really is just a window.
It is just a matter of injecting the right style before loading the window. So we just need to make sure we grab the style outputted by datatables and inject that.
CSS
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
HTML
<div id="print-window">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
<tr>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>$320,800</td>
<td>Edinburgh</td>
<td>5421</td>
<td>t.nixon@datatables.net</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>$170,750</td>
<td>Tokyo</td>
<td>8422</td>
<td>g.winters@datatables.net</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>$86,000</td>
<td>San Francisco</td>
<td>1562</td>
<td>a.cox@datatables.net</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>$433,060</td>
<td>Edinburgh</td>
<td>6224</td>
<td>c.kelly@datatables.net</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</tfoot>
</table>
</div>
<input type="button" value="Print" onclick="pdf()" />
Javascript
function pdf()
let t = document.getElementById('print-window').innerHTML;
let style = "<style>";
style = style + "table width: 100%; font-size: 17px;";
style = style + "table, th, td border: solid 1px #DDD; border-collapse: collapse;";
style = style + "padding: 2px 3px;text-align: center;";
style = style + "</style>";
let win = window.open('', '', 'height=700,width=700');
win.document.write('<html><head>');
win.document.write('<title>Profile</title>');
win.document.write(style);
win.document.write('</head>');
win.document.write('<body>');
win.document.write(t);
win.document.write('</body></html>');
win.document.close();
win.print();
You asked for a work-around and since it is already mentioned not a feature for Datatables at the moment. You could simply convert it to a PDF through grabbing only the tables contents. Then add styling for the print window without any libraries. It really is just a window.
It is just a matter of injecting the right style before loading the window. So we just need to make sure we grab the style outputted by datatables and inject that.
CSS
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
table
width: 300px;
font-size: 17px;
table, th, td
border: solid 1px #DDD;
border-collapse: collapse;
padding: 2px 3px;
text-align: center;
HTML
<div id="print-window">
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th rowspan="2">Name</th>
<th colspan="2">HR Information</th>
<th colspan="3">Contact</th>
</tr>
<tr>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>$320,800</td>
<td>Edinburgh</td>
<td>5421</td>
<td>t.nixon@datatables.net</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>$170,750</td>
<td>Tokyo</td>
<td>8422</td>
<td>g.winters@datatables.net</td>
</tr>
<tr>
<td>Ashton Cox</td>
<td>Junior Technical Author</td>
<td>$86,000</td>
<td>San Francisco</td>
<td>1562</td>
<td>a.cox@datatables.net</td>
</tr>
<tr>
<td>Cedric Kelly</td>
<td>Senior Javascript Developer</td>
<td>$433,060</td>
<td>Edinburgh</td>
<td>6224</td>
<td>c.kelly@datatables.net</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>Office</th>
<th>Extn.</th>
<th>E-mail</th>
</tr>
</tfoot>
</table>
</div>
<input type="button" value="Print" onclick="pdf()" />
Javascript
function pdf()
let t = document.getElementById('print-window').innerHTML;
let style = "<style>";
style = style + "table width: 100%; font-size: 17px;";
style = style + "table, th, td border: solid 1px #DDD; border-collapse: collapse;";
style = style + "padding: 2px 3px;text-align: center;";
style = style + "</style>";
let win = window.open('', '', 'height=700,width=700');
win.document.write('<html><head>');
win.document.write('<title>Profile</title>');
win.document.write(style);
win.document.write('</head>');
win.document.write('<body>');
win.document.write(t);
win.document.write('</body></html>');
win.document.close();
win.print();
edited Mar 29 at 22:50
answered Mar 29 at 22:09
RaymondRaymond
1,115415
1,115415
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
add a comment |
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
thanks man after all i changed to bootstrap-table.com bc when your report is 50 page and more making pdf and put data inside tack much time i guess bootstrap-table is much easer to use but i guess a lot of people search about this solution
– Awar Pulldozer
Mar 30 at 10:29
add a comment |
As discussed in this topic from Datatables website, this feature is not yet available.
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
add a comment |
As discussed in this topic from Datatables website, this feature is not yet available.
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
add a comment |
As discussed in this topic from Datatables website, this feature is not yet available.
As discussed in this topic from Datatables website, this feature is not yet available.
answered Mar 28 at 8:14
WR.WR.
1264
1264
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
add a comment |
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
i know that but i ask if anyone can fix it here
– Awar Pulldozer
Mar 29 at 15:31
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55294594%2fdatatable-print-complex-header-print-preview%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
4
Can you please add problem and solution that can be understood?
– varit05
Mar 24 at 10:03
2
Can you create a stack snippet/jsFiddle to verify it?
– Munim Munna
Mar 24 at 10:41
i upload example on jsfiddle
– Awar Pulldozer
Mar 26 at 19:31
1
@AwarPulldozer Do want exactly header and footer should be in print view right?
– iyyappan
Mar 27 at 13:01
yes thats what i want
– Awar Pulldozer
Mar 27 at 15:39