2014-10-15 5 views
1

Я пытаюсь экспортировать содержимое DIV в PDF, используя библиотеку jsPDF.JSPDF - только часть страницы

Проблема в том, что когда я пытаюсь экспортировать содержимое div, то, что я вижу в pdf, является лишь частью реального содержимого div и не все документы, которые я хочу экспортировать.

Вот код:

// Javascript 
function pdf() { 
     var doc = new jsPDF('p', 'in', 'letter'); 
     var specialElementHandlers = { 
      '#ricercaChat': function (element, renderer) { 
       return true; 
      } 
     }; 
     doc.fromHTML($("#ricercaChat").html(), 15, 15, { 
       'width':170, 
       'elementHandlers': specialElementHandlers 
     }); 
     doc.save('role.pdf'); 
    } 

//HTML 
<a href="#" onclick="pdf()"><img src="immagini/pdf1.png"></a> 
<div id="ricercaChat" width="100%"> 
...(html loaded with jQuery.load that is another page)</div> 

Я попытался изменить функцию:

var htmlall = document.getElementById('ricercaChat').innerHTML; // there is ALL the html content 
doc.fromHTML(htmlall, 15, 15, { ... 

Ведение в этом режиме, PDF совершенно пустой.

Как я могу решить эту проблему? Большое спасибо

ответ

0

Попробуйте это (создать изображение из HTML) вместо:

// Javascript 
function pdf() { 
    var canvas = document.getElementById('ricercaChat'); 
    // save canvas image as data url (png format by default) 
    var dataURL = canvas.toDataURL(); 

    var imgData = dataURL; 

    var doc = new jsPDF(); 
    doc.addImage(imgData, 'JPEG', 15, 40); 

    doc.save('role.pdf'); 
} 
+0

Я не принимаю div 'ricercaChat' с document.getElementById. Он находится внутри кадра, поэтому я беру его с именем кадра, начиная с элемента документа. document.centro.contentCentro.ricercaChat – user2854276

+0

Вы можете взять любой элемент, который хотите. jsPDF создаст образ того, какой компонент вы выберете. :) –

+0

toDataUrl не является функцией. – user2854276

2

Проблема с этим блоком кода:

var specialElementHandlers = { 
    '#ricercaChat': function (element, renderer) { 
     return true; 
    } 
}; 

Что она делает это, он говорит jsPDF игнорировать содержимое в «#ricercaChat» при создании pdf. Следовательно, вы получаете пустой pdf-файл. Вы можете просто генерировать без специальных элементов: Hangler:

doc.fromHTML($("#ricercaChat").html(), 15, 15); 
Смежные вопросы