2014-09-22 91 views
1

我试图将HTML转换成PDF和我在ASP.NET MVC5工作是我的代码:
jsPDF将HTML转换成PDF

@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> 

} 

当使用我收到一条消息

TypeError: renderer.pdf.table is not a function 
第一个div

,但第二个div工作正常。

有没有人有任何想法?

+0

我解决了这个通过更改插件的版本来解决问题。 – 2014-09-22 09:46:28

+0

这包括你如何解决你的答案,以正确回答你的问题。 – bot 2014-09-24 01:16:26

回答

1

我通过更改插件的版本解决了这个问题。

+0

请解释一下你的意思;哪个插件和哪个版本?我正在使用刚刚下载的JSPDF并获取此错误。 – 2015-03-09 18:10:15

4

所有, 我遇到了同样的问题,它原来我错过了jspdf.plugin.cell.js插件,设在这里

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

希望帮助

+1

虽然此链接可能会回答问题,但最好在此处包含答案的重要部分并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – 2015-04-30 16:37:51

+2

@DavidGrinberg,我相信我那样做了.. 1)我说缺少一个插件文件,然后2)指向文件 作为参考 – 2015-04-30 16:53:23

+0

谢谢,这正是我的问题! – Shryme 2015-06-17 13:30:26