2016-03-29 13 views
1

Ich benutze html2canvas und jsPDF, um ein Div in PDF zu exportieren, arbeitet an Google Chrome, Firefox und IE 11, aber in den Versionen 9 und 10 von IE gibt Fehler: ArrayBuffer ist undefined.Fehler: ArrayBuffer ist undefined

Code:

function exportPDF(relatorio){ 

var form = $(relatorio); 

var cache_width = form.width(); 

var a4 =[ 595.28, 841.89]; 

getCanvas(form).then(function(canvas){ 

    var imgData = canvas.toDataURL('image/png'); 

    var imgWidth = 210; 

    var pageHeight = 295; 

    var imgHeight = canvas.height * imgWidth/canvas.width; 

    var heightLeft = imgHeight; 

    var doc = new jsPDF('p', 'mm'); 

    var position = 0; 

    doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); 

    heightLeft -= pageHeight; 

    while (heightLeft >= 0) { 

     position = heightLeft - imgHeight; 

     doc.addPage(); 

     doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); 

     heightLeft -= pageHeight; 

    } 

    doc.save('relatorioOrcadoRealizado.pdf'); 
    form.width(cache_width); 

}); 
} 

function getCanvas(form){ 
//CONVERT for canvas 
return html2canvas(form,{ 
    imageTimeout:2000, 
    removeContainer:true 
    }); 
} 

Antwort

0

Blick auf diesen Link: http://caniuse.com/#feat=typedarrays

Es wird Ihnen zeigen, dass Arraybuffer nicht in Internet Explorer 9 unterstützt wird und nur mit Einschränkungen in Internet Explorer 10. Diese Einrichtung unterstützt Sie müssen den Code ändern, um etwas anderes zu verwenden (dieses Polyfill hier zum Beispiel: https://github.com/inexorabletash/polyfill/blob/master/typedarray.js) oder dass Sie leben müssen, wenn Ihr Code nicht in IE 9 und/oder 10 funktioniert.

+0

Vielen Dank für Ihre Antwort @ David va Driessche, Entschuldigung für meinen "englischen" Übersetzer google aber ich habe nicht verstanden, wie ich dieses "typedarray.js" verwenden kann Ich muss dieses Javascript meinem Projekt hinzufügen? –