Javascript 将网页转换为带有样式的pdf

Javascript 将网页转换为带有样式的pdf,javascript,html,pdf,jspdf,html2canvas,Javascript,Html,Pdf,Jspdf,Html2canvas,我想将网页转换为PDF格式,包括我添加的所有样式。 我使用了jspdf.js和html2Canvas。但我只有一张PDF格式的模糊图片。 我搜索了很多JavaScript代码,但没有找到正确的代码 我写的剧本是: 函数getPDF(){ html2canvas(document.body{ onrendered:函数(画布){ var img=canvas.toDataURL(“Image/jpeg”); //窗口打开(img); var doc=新的jsPDF({ 单位:px, 格式:“a4

我想将网页转换为PDF格式,包括我添加的所有样式。 我使用了jspdf.js和html2Canvas。但我只有一张PDF格式的模糊图片。 我搜索了很多JavaScript代码,但没有找到正确的代码

我写的剧本是:

函数getPDF(){ html2canvas(document.body{ onrendered:函数(画布){ var img=canvas.toDataURL(“Image/jpeg”); //窗口打开(img); var doc=新的jsPDF({ 单位:px, 格式:“a4” }); addImage文件(img,'JPEG',0,0440627); 文件保存(“下载”); } });
}可能有一些因素在起作用

缺少canvas.toDataURL的编码器选项,因此您将获得默认值。默认设置可能是创建低质量图像。要获得最高质量的JPEG图像,请尝试以下操作:

var img = canvas.toDataURL("Image/jpeg", 1.0);
您还可以尝试使用测量值而不是像素创建jsPDF对象:

var pdf = new jsPDF("p", "mm", "a4");  // jsPDF(orientation, units, format)
添加图像时,将其缩放到页面的尺寸:

pdf.addImage(imgData, 'JPEG', 10, 10, 190, 277);  // 190x277 mm @ (10,10)mm

看看这是否能让您获得更好的图像质量。

谢谢Michael…这并没有给出a4的大小,打印的图像也小于pdf的大小,可以通过更改尺寸来更正,不是吗?是的,您可以更改尺寸。我在jsPDF构造函数中用正确的方向更新了我的答案(“p”表示纵向),并更改了页面的尺寸。A4是210mm X 297mm,您可能需要进行实验,以获得输出的正确尺寸。再次感谢..,在我的网页中有单选按钮要显示。但它没有出现在打印的图像中。这是否意味着html@canvas是否不接受这种价值观?有什么解决办法吗?我相信是的。某些HTML元素可能无法使用html2canvas呈现。文档列出了CSS样式可能导致问题的一些情况,例如图像背景。还存在已知的浏览器问题,因此您可以尝试其他浏览器。除此之外,我不知道还有什么解决办法。这里有一个建议: