2015-07-29 2 views
0

Я разрабатываю приложение, которое генерирует некоторые графики, используя canvas. Теперь мне нужно экспортировать эти графики в PDF. Что случилось с моим кодом?Как экспортировать изображение холста с помощью jsPDF?

Я думаю, что проблема заключается в src использовании dataURI:

function uri(obj) { 
    var canvas = document.getElementById(obj); 
    var dataURL = canvas.toDataURL("image/jpeg,1.0"); 
    var img = document.getElementById('minha_imagem'); 
    img.src = dataURL; 
} 

CodePen

+0

Вам нужно использовать метод 'addImage()', который принимает dataURL в качестве первого аргумента – Kaiido

ответ

1

Это был мой вопрос тоже.

var canvas = document.getElementById(canvas_obj); 
doc.addImage(canvas.toDataURL("image/jpeg"), 'JPEG', 0, 0, 100, 100); 

В результате получается pdf с черным изображением.

http://codepen.io/doriclaudino/pen/KprqzR

Я думаю, вам нужно использовать последнюю версию JSPDF с anothers включает.

+0

Вот способ получить его белый : http://codepen.io/anon/pen/rVQQNZ – Kaiido

+0

Спасибо kaiido, он отлично работает. У вас есть идея, чтобы методHTML экспортировал холст или изображение с помощью src base64? (возможно, создание фонового изображения). – doriclaudino

+0

Ну, я никогда не входил в jspdf-код, но кажется, что 'addImage' - единственный метод, который работает rn. Говорили слишком быстро: https://twitter.com/mrrio/status/429276804143017984?lang=en – Kaiido

0

немного поздно, может быть,

Я только что был один и тот же вопрос месяца назад, я решил его как этот

function getPDFFileButton() { 
      return html2canvas($("#toSaveAsPDF"), { 
       background: "#ffffff", 
       onrendered: function(canvas) { 
        var myImage = canvas.toDataURL("image/jpeg"); 
        var imgWidth = (canvas.width * 25.4)/240; 
        var imgHeight = (canvas.height * 25.4)/240; 
        var table = new jsPDF('p', 'mm', 'a4'); 
        table.addImage(myImage, 'JPEG', 15, 2, imgWidth, imgHeight); // 2: 19 
        table.save('Statistiques.pdf'); 
       } 
      }); 
     } 

вы можете установить фон генерируемого PDF с этой линией background: "#ffffff",

Надеюсь, что это может быть полезно,

Смежные вопросы