簡體   English   中英

jsPDF將html轉換為pdf

[英]jsPDF convert html to pdf

我正在嘗試將HTML轉換為PDF,並且在ASP.NET MVC5中工作,這是我的代碼:

    @model Ebok.Models.AtmClaimReportDetailsInfoViewModel

@{
    ViewBag.Title = "Dzienny raport rozliczenia transakcji bankomatu "+Model.AtmPid+" sieci "+Model.CustomerNumber;
}
<div style="border-width: 2px; padding: 1em; font-size:120%;line-height: 1.5em;" id="fromHTMLtestdiv"> // `<-- THIS DIV NOT WORK`

    <h3 class="text-align-center ">Dzienny raport rozliczenia transakcji bankomatu @Model.AtmPid sieci @Model.CustomerNumber</h3>

    <div class="row">
        <div class="text-align-center col-xs-5">

            <div class="text-align-center padding-top-10">
                @Model.CompanyNameString

                <br />
                NIP: @Model.Nip
            </div>
        </div>

        <div class="text-align-center col-xs-5">
            Rozliczenie bankomatu @Model.AtmPid sieci @Model.CustomerNumber
            za dzień: @Model.BusinessDate.ToShortDateString() <br />
            Wygenerowano dnia: @Model.CreationDate.ToShortDateString()
        </div>

    </div>


        <table class="table table-bordered">
            <thead>
                <tr>
                    <th> Sieć</th>
                    <th> ATM</th>
                    <th> Adres</th>
                    <th> Kwota korekty (uznanie)</th>
                    <th> Kwota transakcji</th>
                    <th> Data i godzina transakcji</th>
                </tr>
            </thead>
            <tbody>
                @Html.Partial("ClaimReportsDetailsPartial")
            </tbody>
        </table>

    <button onclick="javascript:demoFromHTML()" class="button">Run Code</button>

    <div id="fromHTMLtestdiv">  // **THIS DIV WORK FINE**
        <h1>
            We support special element handlers. Register them with jQuery-style.
            <a>asdsdsd</a>
        </h1>
    </div>
</div>

<div class="form-actions">
    <button class="print-link btn btn-info" onclick="jQuery.print('#printClaimReport')"><i class="glyphicon glyphicon-print"></i></button>

    <input type="button" value="Powrót" onclick="location.href='@Url.Action("Index")'" class="btn btn-info" />
</div>

@section Scripts {

<script type='text/javascript'>
    function demoFromHTML() {
        var pdf = new jsPDF('p', 'pt', 'letter')

        // source can be HTML-formatted string, or a reference
        // to an actual DOM element from which the text will be scraped.
        , source = $('#fromHTMLtestdiv')[0]

        // we support special element handlers. Register them with jQuery-style 
        // ID selector for either ID or node name. ("#iAmID", "div", "span" etc.)
        // There is no support for any other type of selectors 
        // (class, of compound) at this time.
        , specialElementHandlers = {
            // element with id of "bypass" - jQuery style selector
            '#bypassme': function (element, renderer) {
                // true = "handled elsewhere, bypass text extraction"
                return true
            }
        }

        margins = {
            top: 80,
            bottom: 60,
            left: 40,
            width: 522
        };
        // all coords and widths are in jsPDF instance's declared units
        // 'inches' in this case
        pdf.fromHTML(
           source // HTML string or DOM elem ref.
           , margins.left // x coord
           , margins.top // y coord
           , {
               'width': margins.width // max width of content on PDF
               , 'elementHandlers': specialElementHandlers
           },
           function (dispose) {
               // dispose: object with X, Y of the last line add to the PDF 
               //          this allow the insertion of new lines after html
               pdf.save('Test.pdf');
           },
           margins
       )
        pdf.output('dataurl');
    }


</script>

}

使用第一個div時,我會收到一條消息

TypeError: renderer.pdf.table is not a function

,但第二個div工作正常。

有人有什么主意嗎?

全部,我遇到了同樣的問題,結果發現我缺少jspdf.plugin.cell.js插件,位於此處

https://github.com/MrRio/jsPDF/blob/master/jspdf.plugin.cell.js

希望能有所幫助

我通過更改插件的版本解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM