2016-05-13 75 views
22

我想獲取PDF中的HTML頁面。如何使用jquery獲得打印PDF格式的結果

一些研究,我發現pdfJS插件後,它有一些問題,引導,佈局將是混亂

http://jsfiddle.net/5ud8jkvf/

這裏是小提琴

我發現默認的打印成PDF結果是偉大的

enter image description here

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

因此,我沒有解決pdfJS的問題,我不知道是否有HTML/jQuery的方式來獲得從PDF格式的PDF格式的PDF。

的HTML需要轉換爲PDF只有一個頁面的申請表,非常感謝

+2

有什麼進展?我也需要相同的要求 – Nagaraju

+1

你可以在圖像中包含'html'問題? – guest271314

+0

@ user782104您可以指定您面臨的問題是bootstrap和jstopdf –

回答

3

當前版本允許獲得pdf的blobarraybuffer。你所要做的唯一事情是從0.9更新到庫的1.2.x版本,並調用保存這樣

var myBlob; 

$('#cmd').click(function() { 
    doc.fromHTML($('#content').html(), 15, 15, { 
     'width': 170, 
      'elementHandlers': specialElementHandlers 
    }); 
    myBlob = doc.save('blob'); 
}); 
2

可能是你可以嘗試html2canvas(它將解析DOM,計算應用的樣式)。

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

}()); 

我發現這個here。如果您需要更多信息,請檢查鏈接。

2

似乎您試圖表中的數據打印成PDF Format.So您可以使用jQuery的DataTables插入。

Datatables提供button庫,您可以在其中使用PDF按鈕。 它支持HTML5和Flash以及按鈕類型,在Flash和HTML按鈕選項之間自動選擇。

$('#myTable').DataTable({ 
buttons: [ 
    'pdf' 
] 
}); 

它提供了excel導出功能,您只需要添加excel按鈕即可。

$('#myTable').DataTable({ 
buttons: [ 
    'copy', 'excel', 'pdf' 
] 
}); 

我已經在我們的應用程序中使用過,它不會與bootstrap發生任何衝突。