我想将一些div转换为PDF,并且尝试了jsPDF库,但没有成功。看来我不明白我需要导入什么才能使库正常工作。我已经看过这些示例,但仍然无法弄清楚。我尝试了以下方法:
<script type="text/javascript" src="js/jspdf.min.js"></script>
在jQuery之后:
$("#html2pdf").on('click', function(){ var doc = new jsPDF(); doc.fromHTML($('body').get(0), 15, 15, { 'width': 170 }); console.log(doc); });
用于测试目的,但我收到:
"Cannot read property '#smdadminbar' of undefined"
#smdadminbar身体的第一个div 在哪里。
#smdadminbar
您可以按如下方式使用html中的pdf,
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
对此进行自定义以传递标识符,或者只是将#content更改为所需的标识符。
<script> function demoFromHTML() { var pdf = new jsPDF('p', 'pt', 'letter'); // source can be HTML-formatted string, or a reference // to an actual DOM element from which the text will be scraped. source = $('#content')[0]; // we support special element handlers. Register them with jQuery-style // ID selector for either ID or node name. ("#iAmID", "div", "span" etc.) // There is no support for any other type of selectors // (class, of compound) at this time. specialElementHandlers = { // element with id of "bypass" - jQuery style selector '#bypassme': function (element, renderer) { // true = "handled elsewhere, bypass text extraction" return true } }; margins = { top: 80, bottom: 60, left: 40, width: 522 }; // all coords and widths are in jsPDF instance's declared units // 'inches' in this case pdf.fromHTML( source, // HTML string or DOM elem ref. margins.left, // x coord margins.top, { // y coord 'width': margins.width, // max width of content on PDF 'elementHandlers': specialElementHandlers }, function (dispose) { // dispose: object with X, Y of the last line add to the PDF // this allow the insertion of new lines after html pdf.save('Test.pdf'); }, margins ); } </script>
<a href="javascript:demoFromHTML()" class="button">Run Code</a> <div id="content"> <h1> We support special element handlers. Register them with jQuery-style. </h1> </div>