将jsp或html页面动态生成PDF(jsPDF插件)
这篇文章主要是说明如何使用jsPDF插件,将jsp或html页面生成pdf
先来简单介绍一下jsPDF的优缺点。
优点:
1.在js中引入引入插件可以直接使用
2.可以局部模块生成pdf,显得更加灵活
缺点:
1.类似于将页面先生成图片,再将图片转为pdf,所以导致对分页支持很差
2.整体不是很清晰,但是也够用了
好了下面就直接上代码了
html代码:
<div id="detailContainer" style="display: none;">... </div>
引入jspdf插件
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>
js代码:
$("#pdf").click(function(){//触发事件执行转pdf。#pdf必须在要打印的div内!
var pdf = new jsPDF('', 'pt', 'a4');
pdf.internal.scaleFactor = 2; //调节打印大小,数字越大打印越小
var options = {
pagesplit: true //设置是否自动分页
};
$('#detailContainer').css("background", "#fff")//如果导出的pdf为黑色背景,需要将导出的html模块内容背景 设置成白色。
var printHtml = $('#detailContainer').get(0); // 通过id获取div内容
pdf.addHTML(printHtml,15, 15, options,function() {
pdf.save('123.pdf');
});
})
}
完成。
另外附上RGB颜色表,打出骚气的pdf [滑稽]
RGB颜色表 : https://www.114la.com/other/rgb.htm