2014-10-21 5 views
10

Şu anda, genellikle data tables ve div tag içeren html içeriğinin dışa aktarılmasını gerektiren bir okul yönetimi yazılımı üzerinde çalışıyorum.html2canvas ve jspdf'yi pdf'ye doğru ve basit bir şekilde vermek için nasıl kullanılır

Ben tercihen css ile iyi bir şekilde benim html verilerini dışa mümkün olacak bir kod yazmak için olası tüm araçları çalıştılar. Bazı soruları ve cevapları kontrol ettikten sonra spdf kullanmayı denedim, ama şans yok.

Benim masa hizalama yok tutar, o zaman ben okumak yaklaşık html2canvashtml2canvas bir div etiketi sonra da tuval ihracat jspdf için tuval gönderirseniz benim sorunum, ben içerik yakalamak istiyoruz edildi jspdf ile uygulamak ancak pdf.

burada
<script src="assets/js/pdfconvert/jspdf.js"></script> 
<script src="assets/js/pdfconvert/jspdf.plugin.from_html.js"></script> 
<script src="assets/js/pdfconvert/jspdf.plugin.split_text_to_size.js"></script> 
<script src="assets/js/pdfconvert/jspdf.plugin.standard_fonts_metrics.js"> </script> 
<script src="assets/js/pdfconvert/jspdf.plugin.addhtml.js"></script> 
<script src="assets/js/pdfconvert/filesaver.js"></script> 
<script src="assets/js/pdfconvert/jspdf.plugin.cell.js"></script> 
<script src="assets/js/pdfconvert/html2canvas.js"></script> 
<script src="assets/js/pdfconvert/jspdf.plugin.addimage.js"></script> 

js kodunu Sana bir jsfiddle yaptık

var pdf = new jsPDF('p', 'pt', 'letter'); 
pdf.addHTML($('#ElementYouWantToConvertToPdf')[0], function() { 
pdf.save('Test.pdf'); 
}); 
+0

Eğer html2canvas kullanarak tuval üzerinde div göstermek yapabiliyor musunuz? –

+0

i cant hayır, yukarıda jquery kodu bunu çalıştırdığınızda hiçbir şey yapmaz –

+0

ihtiyacım lütfen yardım veya öneriler –

cevap

18

geçerli:

İşte aşağıda benim kodudur.

<canvas id="canvas" width="480" height="320"></canvas> 
     <button id="download">Download Pdf</button> 

'

 html2canvas($("#canvas"), { 
      onrendered: function(canvas) {   
       var imgData = canvas.toDataURL(
        'image/png');    
       var doc = new jsPDF('p', 'mm'); 
       doc.addImage(imgData, 'PNG', 10, 10); 
       doc.save('sample-file.pdf'); 
      } 
     }); 

jsfiddle:

http://jsfiddle.net/rpaul/p4s5k59s/5/ Chrome38, IE11 içinde test edilmiş ve Firefox 33. Safari ile sorunları var gibi görünüyor. Ancak Andrew, Mac OSx'te Safari 8'de PNG'den JPEG'e geçerek çalışmıştır. Ayrıntılar için aşağıdan yorum sayfasına bakın.

+1

Sweet için hepsini ekleyin! Bu, Chrome'da harika çalışıyor. Safari'de, indirme düğmesine bastığımda boş bir sayfa açıyorum. –

+1

Teşekkürler Andrerw. Safari 5.1.7 nedir? Safari sürümü 6 ve 7 pencereleri desteklemiyor gibi görünüyor? JSpdf safari.http ile bazı sorunlar vardır: //stackoverflow.com/questions/21755171/jspdf-not-working-on-safari sen doc.output çalıştı ('dataurlnewwindow') var ;? –

+1

Bunu, OS X üzerinde Safari 8'de test ettim. Sorunun tuval verilerinin PNG verileri olarak kaydedilip kaydedilmediğini merak ediyorum. Çalıştığım bir projede işlerin Safari'de çalışmasına neden oluyordu, ama sonra JPEG'e geçtim ve aniden çalışmaya başladı. –