jsPDF, javascript'te tanımlanmamıştır

Sep 03 2020

JsPDF kitaplığını içe aktardım ve PDF'ye aktarmayı denedim ancak JavaScript hatası alıyorum jsPDF tanımlı değil.

Diğer benzer gönderileri denedim ve benim için işe yaramadı.

Burada keman var https://jsfiddle.net/aybhvf8e/1/

<script type="text/javascript" src="https://unpkg.com/jspdf@latest/dist/jspdf.umd.min.js"></script>

$( document ).ready(function() { var doc = new jsPDF(); var specialElementHandlers = { '#editor': function (element, renderer) { return true; } }; }) $('#cmd').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});


<div id="content">
     <h3>Hello, this is a H3 tag</h3>

    <p>A paragraph</p>
</div>
<div id="editor"></div>
<button id="cmd">generate PDF</button>

Yanıtlar

3 Vipulw Sep 03 2020 at 22:03

Kodunuzun doğru göründüğünü düşünüyorum ama cdn ile ilgili bazı sorunlar var. Burada bir hata ayıklama kullandım.

İşte referans verebileceğiniz, oluşturduğum bir çalışma örneği. Stackoverflow kısıtlaması nedeniyle pdf indirmeyi görmüyorsanız, test etmek için bu keman'ı kullanın.

Çalışma PDF demosunu indir

Kullandığım cdn bağlantısı: JsPDF CDN LINK . Mevcut olan diğer sürümleri kesinlikle arayabilirsiniz.

function createPdf() {

  var doc = new jsPDF();
  
  source = $('#content')[0];
  
  specialElementHandlers = {
        '#editor': function (element, renderer) {
            return true
        }
    };
  
  doc.fromHTML(
    source,
    15,
    15, 
    {
      'width': 170,
      'elementHandlers': specialElementHandlers
    }
  );
  doc.save('sample-file.pdf')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.debug.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="content">
     <h3>Hello, this is a H3 tag</h3>

    <p>A paragraph</p>
</div>
<div id="editor"></div>
<button onclick="javascript:createPdf()" id="cmd">generate PDF</button>

1 vqf Sep 03 2020 at 22:02

Bu çatalda çözülmüş iki ana sorun buldum . İlk olarak, ile bağlantı kurmadınız jspdf. Bunu html kodunda yapabilirsiniz:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>

İkinci olarak, clickolay dinleyicisini ready()işlevin dışına eklersiniz . Bu da iki soruna neden olur: olay eklenmemiş olabilir ( ready()işlevin nedenini kontrol ettiğinizden emin olun ) ve işlevde tanımladığınız değişkenler ready()işlevde mevcut değil (kapsam dışına çıkın) click. clickDinleyiciyi dinleyicinin içinde ayarlayarak her iki sorunu da çözebilirsiniz ready:

$( document ).ready(function() { var doc = new jsPDF(); var specialElementHandlers = { '#editor': function (element, renderer) { return true; } }; $('#cmd').click(function () {
    doc.fromHTML($('#content').html(), 15, 15, {
        'width': 170,
            'elementHandlers': specialElementHandlers
    });
    doc.save('sample-file.pdf');
});

})
user3285457 Sep 08 2020 at 01:50

VQR ..... bir soru, uygulamam bazen ağ olmayan yerlerde çalışıyor, bu yüzden sonraki satır ağ olmadan çalışmayacak, değil mi?

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>

Ben de kurdum ...

npm install jspdf --save

Ama şimdi, hattı çalıştırmak için Js halıma kopyalamam gereken dosyalar var mı?

var doc = new jsPDF();