Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jsPDF将所有屏幕截图输出到帧中,而不是打印全部内容_Javascript_Angular_Npm_Jspdf - Fatal编程技术网

Javascript jsPDF将所有屏幕截图输出到帧中,而不是打印全部内容

Javascript jsPDF将所有屏幕截图输出到帧中,而不是打印全部内容,javascript,angular,npm,jspdf,Javascript,Angular,Npm,Jspdf,在我的angular应用程序中,我使用jsPDF npm模块将HTML转换为pdf。但我注意到,将网页打印成PDF格式只需要Firefox&Chrome和InternetExplorer中可见区域的截图。但是我想把整个网页转换成PDF格式 我做了如下工作: const doc = new jsPDF({}); const elementToPrint = document.getElementById('elemetToPrint'); doc.addHTML(elementToPrint, (

在我的angular应用程序中,我使用jsPDF npm模块将HTML转换为pdf。但我注意到,将网页打印成PDF格式只需要Firefox&Chrome和InternetExplorer中可见区域的截图。但是我想把整个网页转换成PDF格式

我做了如下工作:

const doc = new jsPDF({});
const elementToPrint = document.getElementById('elemetToPrint');
doc.addHTML(elementToPrint, () => {
  doc.autoPrint();
  doc.save('Test.pdf');
});
HTML代码:

<div id="elemetToPrint">
   <!-- lengthy Code here (which is scrollable and contains graph as well)-->
<button class="printBtn" (click)="downloadPDF()">print</button>
</div>
如果有人有解决办法,请务必告诉我

你可以找到更多的参考资料


提前感谢:)

看看html2canvas。这将拍摄html的图片,然后使用jsPDF从html2canvas创建带有图片的pdf。此工具与jsPDF密切相关

角度的

 html2canvas(document.querySelector("#capture")).then(canvas => {
        document.body.appendChild(canvas)
  });
HTML

<div id="capture" style="padding: 10px; background: #f5da55">
    <h4 style="color: #000; ">Hello world!</h4>
</div>

你好,世界!
教程

您不应该在Angular应用程序中使用纯JS访问DOM。这不是一个好的实践,最好只使用JS编写SPA,而不是使用库/框架。jsPDF有一个npm包。现在,你听说过html2canvasThanks吗。它工作起来很有魅力。我正在尝试使用JSPDF将div的内容捕获到pdf中。并非我的div的所有内容都会进入一页之外的pdf。div可能包含多个pdf的数据。我尝试使用页面分割选项,但没有成功。请帮帮我。提前谢谢你。你能创建一个JSFIDLE吗?