2016-09-15 3 views
1

Я посмотрел на jsPDF, но плагин рисует CSS в экспортированном PDF-файле. Я также посмотрел на html2canvas, но это занимает скриншот текущего окна. Мой HTML-контент скрыт от пользователя, и я ищу решение, которое создаст PDF-файл на ходу из блока HTML. Какие-либо предложения?Как преобразовать HTML/CSS в PDF с помощью Javascript?

EDIT: Я только что попытался создать html2canvas в jsPDF, но я получаю пустой pdf-документ. Может кто-нибудь, пожалуйста, скажите мне, почему? http://jsfiddle.net/5ud8jkvf/6320/

$('.download').on('click', function(){ 
    html2canvas($('.print'), { 
    onrendered: function(canvas) { 
     $('#canvas').replaceWith(canvas); 
    }, 
    //width: 200, 
    //height: 200 
    }); 
    setTimeout(function(){ 
     var doc = new jsPDF(); 
     var specialElementHandlers = { 
     '#editor': function (element, renderer) { 
      return true; 
     } 
     }; 

    doc.fromHTML($('canvas').html(), 15, 15, { 
     'width': '200', 
      'elementHandlers': specialElementHandlers 
    }); 
    doc.save('sample-file.pdf'); 

    }, 500); 
}); 
+0

http://stackoverflow.com/ Вопросы/391005/convert-html-css-to-pdf-with-php – Benjamin

+0

Нет простого решения. Вам понадобится реализация половины полного веб-браузера в JavaScript. Я бы сгенерировал PDF на сервере, используя эту программу: http://wkhtmltopdf.org/. – Michas

ответ

2

Не могли бы вы использовать html2canvas следующим образом, это не имеет значения, что ваш контент HTML скрыт вы должны быть в состоянии получить доступ к нему так:

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

Хорошо, я пробовал это - комбинация html2canvas и jsPDF здесь: http://jsfiddle.net/5ud8jkvf/6320/ Любая идея, почему PDF возвращает пустой документ? – ultimatecoder

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