将html中的内容生成PDF并且下载
2024-09-04 15:41:14
<head>
@*需要引用的js库*@
<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> </head>
<body>
<div id="pdfDom" class="right-aside">
1232132131sd
</div>
<input type="button" value="点击" onclick="makeMpdf('建设工程施工安全监督抽查记录', 'pdfDom')" />
<script type="text/javascript">//将html页面导出.pdf格式文件(适用于jQuery、vue库) -- xzz 2018/04/24
function makeMpdf(pdfName,elementId) {
if (confirm("您确认下载该PDF文件吗?")) {
//var target = document.getElementsByClassName("right-aside")[0];
var target = document.getElementById(elementId);
target.style.background = "#FFFFFF";
if (pdfName == '' || pdfName == undefined) pdfName = "content"; html2canvas(target, {
onrendered: function (canvas) {
var contentWidth = canvas.width;
var contentHeight = canvas.height; //一页pdf显示html页面生成的canvas高度;
var pageHeight = contentWidth / 592.28 * 841.89;
//未生成pdf的html页面高度
var leftHeight = contentHeight;
//页面偏移
var position = ;
//a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
var imgWidth = 595.28;
var imgHeight = 592.28 / contentWidth * contentHeight; var pageData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('', 'pt', 'a4'); //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
//当内容未超过pdf一页显示的范围,无需分页
if (leftHeight < pageHeight) {
pdf.addImage(pageData, 'JPEG', , , imgWidth, imgHeight);
} else {
while (leftHeight > ) {
pdf.addImage(pageData, 'JPEG', , position, imgWidth, imgHeight)
leftHeight -= pageHeight;
position -= 841.89;
//避免添加空白页
if (leftHeight > ) {
pdf.addPage();
}
}
}
pdf.save(pdfName + ".pdf");
}
})
}
} </script>
</body>
最新文章
- oracle异常记录
- linux的设置ip连接crt,修改主机名,映射,建文件
- 字体 font typograph
- win7无法通过DHCP获得IP地址
- Web开发者不可不知的15条编码原则
- redis 资料链接
- okhttputils开源库的混淆配置(Eclipse)
- poj1087 A Plug for UNIX &; poj1459 Power Network (最大流)
- Jquery中dialog属性小记
- ionic中修改图标的问题
- iOS开发宝典:String用法大全
- angularjs---服务(service / factory / provider)
- windows 设置/修改全局快捷键
- Linux 操作系统基础
- 【Python3爬虫】为什么你的博客没人看呢?
- 关于vscode插件 的一些体验
- 4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置
- 【原创】大数据基础之ORC(1)简介
- Kong(V1.0.2)Network &; Firewall
- Nginx打卡