HTMLページをPDFで取得したいのですが。
いくつかの調査を行った後、pdfJSプラグインを見つけました。bootstrapで問題があり、レイアウトが乱雑になります
ここがフィドルです
PDF結果は素晴らしいです。
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の問題を修正する代わりに、pdfとして印刷からpdfを取得するhtml/jqueryの方法はあるのでしょうか。
HTMLはPDFに変換する必要があります。1ページのアプリケーションフォームのみです。どうもありがとうございます。
現在のバージョンでは、pdfの blob または arraybuffer を取得できます。あなたがしなければならない唯一のことは、ライブラリの0.9から1.2.xに更新し、このようにsaveを呼び出すことです
var myBlob;
$('#cmd').click(function () {
doc.fromHTML($('#content').html(), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
myBlob = doc.save('blob');
});
テーブルデータをPDF Format。で印刷しようとしているようです。 DataTables jQueryプラグインを使用できます。
データテーブルは button ライブラリを提供し、その中でPDF
ボタンを使用できます。 HTML5とFlashの両方をサポートし、ボタンタイプはFlashおよびHTMLボタンオプションから自動的に選択します。
$('#myTable').DataTable( {
buttons: [
'pdf'
]
} );
Excelエクスポート機能も提供しています。Excel
ボタンを追加するだけです。
$('#myTable').DataTable( {
buttons: [
'copy', 'Excel', 'pdf'
]
} );
私はすでにアプリケーションで使用していますが、ブートストラップと競合しません。
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
});
}
}());
私はこれを発見しました ここ 。詳細については、リンクを確認してください。
jsPDF-AutoTable(jsPDFプラグイン) を試してみてください。これは、PDF HTMLから必要に応じて変換するのに役立ちます。 demo を確認してください。