【问题标题】:html2canvas and pdfmake create blank pdfhtml2canvas 和 pdfmake 创建空白 pdf
【发布时间】:2017-04-23 13:03:18
【问题描述】:

我正在尝试使用 html2canvas 和 pdfMake 从 html div 生成 pdf,但总是得到一个空白页或只是 div 的一部分!如何获取整个 div 内容?

这里是js代码:

$scope.PrintFiche = function () {
    var prom = new Promise(function (resolve, reject) {
        html2canvas(document.getElementById('DevisImpression'), {
            onrendered: function (canvas) {
                var data = canvas.toDataURL("image/png");
                var docDefinition = {
                    content: [{
                        image: data
                    }]
                };
                resolve(docDefinition);
            }
        });
    })

    prom.then(function (docDef) {

        pdfMake.createPdf(docDef).download($scope.FicheName + ".pdf");
    })

}

还有html:

<div class="Partie" id="DevisImpression">
        <div id="PartieInner">
            <h2 id="TitreDevis">
                <b>
                    Etablissement du devis
                </b>
            </h2>
            <div id="ImgVoitureDevis">
                <img id="ImgVoitureAdapt" src="../../Assets/Images/test.jpg" />
            </div>
            <div id="OptMult">
                <table id="TableDevis">
                    <tr>
                        <td class="td1">
                            Modèle :
                        </td>
                        <td class="td2">
                            {{modele.displayName}}
                        </td>
                    </tr>
                    <tr>
                        <td class="td1">
                            Classe :
                        </td>
                        <td class="td2">
                            {{classe.displayName}}
                        </td>
                    </tr>
                    <tr>
                        <td class="td1">
                            Moteur :
                        </td>
                        <td class="td2">
                            {{moteur.displayName}}
                        </td>
                    </tr>
                    <tr>
                        <td class="td1">
                            Couleur :
                        </td>
                        <td class="td2">
                            {{couleur.displayName}}
                        </td>
                    </tr>
                    <tr>
                        <td class="td1">
                            Jantes :
                        </td>
                        <td class="td2">
                            {{jante.displayName}}
                        </td>
                    </tr>
                </table>
            </div>
            <table id="Devis">
                <tr>
                    <th class="tdDevis2">
                        Options
                    </th>
                    <th class="tdDevis2">
                        Prix
                    </th>
                </tr>
                <tr ng-repeat="optionDev in optionsDevis">
                    <td class="td3">
                        {{optionDev.displayName}}
                    </td>
                    <td class="td4">
                        {{optionDev.prix}} €
                    </td>
                </tr>
            </table>
        </div>
        <h2 id="TotalTitre">
            <b>
                TOTAL
            </b>
        </h2>
        <input type="text" id="Total" value="{{total}} €" disabled />
        <br />
    </div>

【问题讨论】:

  • 您是否遇到任何错误?
  • 没什么!只是一个空白的pdf。我正在和一个朋友一起工作,他可以​​得到我们正在寻找的 pdf,而我却不能。
  • 在另一个线程上发现了类似的问题。看看这是否有帮助stackoverflow.com/questions/34893050/…
  • @davidlima-duret 你有什么解决办法吗?

标签: angularjs html2canvas pdfmake


【解决方案1】:

我有一个简单的解决方案。试试这个。

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

【讨论】:

  • 嗯..这是做什么的?
  • 嘿,我正在尝试使用您的解决方案,但没有成功。
  • html2canvas(document.getElementById("PDFprint"), { onrendered: function (canvas) { var data = canvas.toDataURL(); var docDefinition = { content: [{ image: data, width: 1200 }] }; pdfMake.createPdf(docDefinition).download("test.pdf"); } });这是我的代码,但我不知道为什么 pdfMake 代码没有运行。
  • @ZurielRodriguez 对此有何更新?我在香蕉仪表板中尝试同样的事情来生成 PDF。但我收到错误“错误:html2canvas 未定义 this.to_pdf@localhost:8983/solr/banana/app/services/dashboard.js:269:13
猜你喜欢
  • 2018-01-02
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 2022-08-20
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多