【发布时间】:2020-10-08 20:13:47
【问题描述】:
我有一个外部 html 文件,我想将其打印为 PDF,但我无法让示例代码按预期工作,而且在实现它时我显然遗漏了一些琐碎的事情。
这是我目前的代码:
function savePDF(data) {
var parser = new DOMParser();
var htmlDoc = parser.parseFromString(data, 'text/html');
let pdf = new jsPDF('p','pt','a4');
pdf.addHTML(
htmlDoc.body, // HTML DOM element.
);
pdf.save("test.pdf");
}
data 是一个字符串,其中包含我希望转换为 pdf 的外部网页的 html。
Chrome 正在生成 TypeError:Cannot read property 'innerWidth' of null
这个例子完美地工作(使用fromHTML而不是addHTML)但是缺少css/样式:
function savePDF(data) {
var parser = new DOMParser();
var htmlDoc = parser.parseFromString(data, 'text/html');
let pdf = new jsPDF('p','pt','a4');
pdf.fromHTML(htmlDoc.body.innerHTML, 0, 0, {},
function(){pdf.save('test.pdf');
});
}
我正在使用的示例 html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PDF Test</title>
</head>
<body>
<div id="capture" style="padding: 10px; background: #f5da55">
<h4 style="color: #000; ">Hello world!</h4>
</div>
</body>
</html>
【问题讨论】:
-
您能否提供一个导致错误的html数据示例?
-
@RiccardoGai 在我的原始帖子中添加了一个简单的示例 html。
标签: javascript jspdf html2canvas