html转pdf支持css3,前端HTML页面转PDF(html2canvas+jspdf)
时间: 2023-08-10 18:21:54 浏览: 296
网页导出为PDF插件(html2canvas 和 jsPDF)
可以使用html2canvas和jspdf来将前端HTML页面转换为PDF格式,同时支持CSS3样式。
首先,需要引入html2canvas和jspdf的相关库文件。然后,在页面加载完成后,使用html2canvas将HTML页面转换为canvas,再使用jspdf将canvas导出为PDF格式。
以下是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML to PDF</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>
</head>
<body>
<div id="content">
<h1>Hello, World!</h1>
<p>This is a sample HTML page.</p>
</div>
<button onclick="generatePDF()">Generate PDF</button>
<script>
function generatePDF() {
html2canvas(document.getElementById('content'), {
onrendered: function(canvas) {
var pdf = new jsPDF('p', 'mm', 'a4');
pdf.addImage(canvas.toDataURL('image/png'), 'PNG', 0, 0, 211, 298);
pdf.save('html2pdf.pdf');
}
});
}
</script>
</body>
</html>
```
在上述示例代码中,我们使用了一个包含`id`为`content`的`div`元素作为待转换的HTML页面。我们在页面底部添加了一个按钮,当用户点击按钮时,会调用`generatePDF`函数。
在`generatePDF`函数中,我们使用`html2canvas`将`content`元素转换为canvas,然后使用`jspdf`将canvas导出为PDF格式并进行下载。
需要注意的是,我们在创建`jspdf`对象时指定了页面大小为A4,如果需要生成其他页面大小的PDF文件,可以修改相关参数。另外,`onrendered`回调函数用于在canvas渲染完成后执行相应的操作,这里使用了该函数来导出PDF文件。
综上所述,以上代码可以将前端HTML页面转换为PDF格式,并支持CSS3样式。
阅读全文