jsPDF using downloadify including an image not working

3.9k views Asked by At

Here's the code:

Downloadify.create('downloadify',{
    filename: 'Example.pdf',
    data: function(){ 
        var doc = new jsPDF();
        doc.setFontSize(40);
        doc.text(35, 25, "Octonyan loves jsPDF");
        doc.addImage(imgData, 'JPEG', 15, 40, 180, 180);
        return doc.output();
    },
    onComplete: function(){ alert('Your File Has Been Saved!'); },
    onCancel: function(){ alert('You have cancelled the saving of this file.'); },
    onError: function(){ alert('Error'); },
    swf: 'Downloadify/media/downloadify.swf',
    downloadImage: 'Downloadify/images/save.png',
    width: 250,
    height: 40,
    transparent: true,
    append: false
});

Target browser is IE8. I'm using the image example from jsPDF.com. If I remove the doc.addImage line it works just fine. Ideas? Thanks.

1

There are 1 answers

2
user899641 On

Finally got it.

Added dataType: 'base64' for image, and changed the data: function().

Here is my working code:

 Downloadify.create('downloadify',{
    filename: 'Example.pdf',
    dataType: 'base64',
    data: function(){ 
        var doc = new jsPDF();
        doc.addImage(img64, 'JPEG', 0, 0, 215, 40);
        var output = doc.output();
        return btoa(output);
    },
    onComplete: function(){ alert('Your File Has Been Saved!'); },
    onCancel: function(){ alert('You have cancelled the saving of this file.'); },
    onError: function(){ alert('Error'); },
    swf: 'Downloadify/media/downloadify.swf',
    downloadImage: 'Downloadify/images/save.png',
    width: 250,
    height: 40,
    transparent: true,
    append: false
});