将HTML模态转换为pdf

时间:2019-01-14 10:47:15

标签: javascript html .net angularjs

我是angularjs的新手,我正在尝试将我的html模式保存到angularjs中的PDF中。但是它只保存屏幕上的当前页面,不会保存很大的整个模式。

我尝试了以下代码

<head>
    <script src="angular.min.js"></script>
    <script src="Angular/angular-animate.min.js"></script>
    <script src="Angular/angular-aria.min.js"></script>
    <script src="Angular/angular-material.min.js"></script>
    <script src="Angular/angular-messages.min.js"></script>
    <script src="jquery.min.js"></script>
    <script src="moment.js"></script>
    <script src="ui-bootstrap-tpls-0.10.0.js"></script>
    <script src="AccordianController.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.22/pdfmake.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>
    <script src="script.js"></script>
</head>

<body>
it contains the modal which is not shown here
</body>

Controller
$scope.pdf = function () {
          html2canvas(document.getElementById('exportthis'), {
              onrendered: function (canvas) {
                  var data = canvas.toDataURL();
                  var docDefinition = {
                      content: [{
                          image: data,
                          width: 500,
                      }]
                  };
                  pdfMake.createPdf(docDefinition).download("test.pdf");
              }
          });
      }

我的模态很大,大约需要3页,但是通过此代码,我只能保存显示的屏幕。

请给我建议任何解决方案,或者我可以遵循这些解决方案来满足我的要求。 谢谢。

1 个答案:

答案 0 :(得分:0)

它可能来自html2canvas,它仅考虑屏幕上的“可见”内容。

您应该尝试这篇文章中的解决方法,看看是否能够打印出整个模式:HTML2Canvas converting overflowed content to image