是否可以使用 JavaScript 或 jquery 将 HTML 页面保存为 PDF?
详细:
我生成了一个包含表格的 HTML 页面。它有一个按钮“另存为 PDF”。如果用户单击该按钮,则该 HTML 页面必须转换为 PDF 文件。
是否可以使用 JavaScript 或 jquery?
是否可以使用 JavaScript 或 jquery 将 HTML 页面保存为 PDF?
详细:
我生成了一个包含表格的 HTML 页面。它有一个按钮“另存为 PDF”。如果用户单击该按钮,则该 HTML 页面必须转换为 PDF 文件。
是否可以使用 JavaScript 或 jquery?
是的,使用jspdf来创建一个 pdf 文件。
然后,您可以将其转换为数据 URI 并将下载链接注入 DOM
但是,您需要自己编写 HTML 到 pdf 的转换。
只需使用页面的打印机友好版本,让用户选择他想要打印页面的方式。
编辑:显然它的支持最少
因此,答案是编写您自己的 PDF 编写器或让现有的 PDF 编写器为您完成(在服务器上)。
这可能是一个迟到的答案,但这是最好的:https : //github.com/eKoopmans/html2pdf
纯 JavaScript 实现。允许您仅通过 ID 指定单个元素并对其进行转换。
雅它很容易做到与 javascript。希望这段代码对你有用。
您将需要JSpdf 库。
<div id="content">
<h3>Hello, this is a H3 tag</h3>
<p>a pararaph</p>
</div>
<div id="editor"></div>
<button id="cmd">Generate PDF</button>
<script>
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');
});
// This code is collected but useful, click below to jsfiddle link.
</script>
您可以使用 Phantomjs。在此处下载并使用以下示例测试 html->pdf 转换功能https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js
示例代码:
phantomjs.exe examples/rasterize.js http://www.w3.org/Style/CSS/Test/CSS3/Selectors/current/xhtml/index.html sample.pdf
我使用jsPDF
和dom-to-image
库将 HTML 导出为 PDF。
我张贴在这里作为参考谁关心。
$('#downloadPDF').click(function () {
domtoimage.toPng(document.getElementById('content2'))
.then(function (blob) {
var pdf = new jsPDF('l', 'pt', [$('#content2').width(), $('#content2').height()]);
pdf.addImage(blob, 'PNG', 0, 0, $('#content2').width(), $('#content2').height());
pdf.save("test.pdf");
});
});