Reputation: 13545
I would like to get the HTML page in the PDF.
After some studies I found the pdfJS plugin, it has some problem with bootstrap , the layout will be messy
here is the fiddle
I found the default print as PDF result is great
var doc = new jsPDF();
var specialElementHandlers = {
'#editor': function (element, renderer) {
return true;
}
};
$('#cmd').click(function () {
doc.fromHTML($('#content').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
doc.save('sample-file.pdf');
});
So , instead of fixing the problem for pdfJS, I wonder are there html / jquery way to get the pdf from the print as pdf.
The HTML need to convert to PDF is one page application form only, thanks a lot
Upvotes: 23
Views: 19256
Reputation: 556
Try jsPDF-AutoTable (jsPDF plugin), this may help you to convert to PDF from HTML as you want. Check out the demo
Upvotes: 1
Reputation: 2135
It seems you are trying to print table data into PDF Format.So you can use DataTables jQuery Plugin.
Datatables provide button library in which you can use PDF
button.
Its support both HTML5 and Flash and button type automatically select between the Flash and HTML button options.
$('#myTable').DataTable( {
buttons: [
'pdf'
]
} );
Its provide excel export feature too, you just need to add excel
button.
$('#myTable').DataTable( {
buttons: [
'copy', 'excel', 'pdf'
]
} );
I have already used in our application it will not make any conflict with bootstrap.
Upvotes: 2
Reputation: 883
The current version allows to get the blob or the arraybuffer of the pdf. The only thing you have to do is to update from 0.9 to 1.2.x of the library and call save like this
var myBlob;
$('#cmd').click(function () {
doc.fromHTML($('#content').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
myBlob = doc.save('blob');
});
Upvotes: 3
Reputation: 4806
May be you can try html2canvas(It will parse the DOM, Calculate the styles applied).
(function(){
var
form = $('.form'),
cache_width = form.width(),
a4 =[ 595.28, 841.89]; // for a4 size paper width and height
$('#create_pdf').on('click',function(){
$('body').scrollTop(0);
createPDF();
});
//create pdf
function createPDF(){
getCanvas().then(function(canvas){
var
img = canvas.toDataURL("image/png"),
doc = new jsPDF({
unit:'px',
format:'a4'
});
doc.addImage(img, 'JPEG', 20, 20);
doc.save('techumber-html-to-pdf.pdf');
form.width(cache_width);
});
}
// create canvas object
function getCanvas(){
form.width((a4[0]*1.33333) -80).css('max-width','none');
return html2canvas(form,{
imageTimeout:2000,
removeContainer:true
});
}
}());
I found this here. Please check the link if you want more info.
Upvotes: 2