0

I'm trying to export a div to pdf when I click the button, however I get a javascript function error that I can not solve, can anyone help me?

Image with error

JavaScript

 <script language="javascript">
var cache_width = $('#renderPDF').width(); //Criado um cache do CSS
var a4 = [595.28, 841.89]; // Widht e Height de uma folha a4

    $("#btnPrint").live("click", function () {
        // Setar o width da div no formato a4
        $("#renderPDF").width((a4[0] * 1.33333) - 80).css('max-width', 'none');

        // Aqui ele cria a imagem e cria o pdf
        html2canvas($('#renderPDF'), {
            onrendered: function (canvas) {
                var img = canvas.toDataURL("image/png", 1.0);
                var doc = new jsPDF({ unit: 'px', format: 'a4' });
                doc.addImage(img, 'JPEG', 20, 20);
                doc.save('NOME-DO-PDF.pdf');
                //Retorna ao CSS normal
                $('#renderPDF').width(cache_width);
            }
        });
    });            
</script>

HTML

<div class="table-responsive panel" id="renderPDF">
  <table class="table">
    <tbody>
      <tr>
        <td class="text-success"><i class="fa fa-list-ol"></i> Cliente ID</td>
        <td>@Model.ID_Cliente</td>
      </tr>
      <tr>
        <td class="text-success"><i class="fa fa-user"></i> Nome</td>
        <td>@Model.Nome</td>
      </tr>
      <tr>
        <td class="text-success"><i class="fa fa-home"></i> Morada</td>
        <td>@Model.Morada</td>
      </tr>
    </tbody>
  </table>
</div>
Craicerjack
  • 5,524
  • 2
  • 27
  • 36
Navas
  • 39
  • 1
  • 7
  • 3
    Possible duplicate of [jQuery 1.9 .live() is not a function](https://stackoverflow.com/questions/14354040/jquery-1-9-live-is-not-a-function) – Ivar Aug 09 '18 at 10:18

2 Answers2

0

live method is deprecated and probably removed in your jQuery version.

Try using on instead.

hsz
  • 136,835
  • 55
  • 236
  • 297
  • It worked when replacing live by on. However, I get an error saying Uncaught Invalid orientation: [object object] – Navas Aug 09 '18 at 10:40
0

Which version of jquery are you using? .live has been removed from version 1.9 on wards.

$(document).on("click", '#btnPrint', function () {
        // Setar o width da div no formato a4
        $("#renderPDF").width((a4[0] * 1.33333) - 80).css('max-width', 'none');

        // Aqui ele cria a imagem e cria o pdf
        html2canvas($('#renderPDF'), {
            onrendered: function (canvas) {
                var img = canvas.toDataURL("image/png", 1.0);
                var doc = new jsPDF({ unit: 'px', format: 'a4' });
                doc.addImage(img, 'JPEG', 20, 20);
                doc.save('NOME-DO-PDF.pdf');
                //Retorna ao CSS normal
                $('#renderPDF').width(cache_width);
            }
        });
    });       
darkknight
  • 216
  • 4
  • 15