2017-07-06 85 views
0

嘗試自動將此內容轉換爲pdf文件。根據我的其他代碼的設置,我必須有按鈕來點擊INSIDE div我想要導出到pdf。這是一個問題嗎?這是迄今爲止我所擁有的。當我點擊按鈕時,它什麼都不做。使用jsPDF將HTML內容轉換爲PDF文件

JS:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.debug.js"></script> 

<script> 
jQuery('#generatereport').click(function() { 
    doc.fromHTML(jQuery('#lppresults').html(), 15, 15, { 
     'width': 170 
    }); 
    doc.save('sample-file.pdf'); 
}); 
</script> 

HTML:

<div class="survey-results" style="display: none;" id="lppresults"> 
    <button id="generatereport">Download Report</button> 
    TEST CONTENT 
</div> 
+0

我猜你有JS到.html文件? – VictorArcas

+0

@VictorArcas是的,這是正確的 – mickdeez

回答

0

您需要初始化jsPDF類:var doc = new jsPDF();

var doc = new jsPDF(); 
 
jQuery('#generatereport').click(function() { 
 
    doc.fromHTML(jQuery('#lppresults').html(), 15, 15, { 
 
    'width': 170 
 
    }); 
 
    doc.save('sample-file.pdf'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script> 
 

 

 
<div class="survey-results" id="lppresults"> 
 
    <button id="generatereport">Download Report</button> TEST CONTENT 
 
</div>

1

不,這不是問題。您可以使用div元素中的按鈕。儘管你還有其他一些問題。這裏是你的代碼的修訂版...

var doc = new jsPDF(); 
 
$('#generatereport').click(function() { 
 
    doc.fromHTML($('#lppresults')[0], 15, 15, { 
 
     width: 170 
 
    }, function() { 
 
     doc.save('sample-file.pdf'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.4/jspdf.min.js"></script> 
 

 
<div class="survey-results" id="lppresults"> 
 
    <button id="generatereport">Download Report</button> TEST CONTENT 
 
</div>

+0

感謝您的答案!我發現你的代碼段可以工作,但是當我在我的網站上實現時,按鈕仍然沒有任何作用。我的#lppresults div裏面有更多的div(不僅僅是文本) - 這應該不重要嗎?另外,我在只接受HTML的頁面上完成了這一切。我得到我的JavaScript工作的唯一方法是通過更改$ jQuery - 我不應該這樣做嗎?我想知道是否有其他的干擾。 – mickdeez

+0

不,多個div應該不重要,既不是'$'和'jQuery'。確保你在關閉''標籤之前放置腳本。你也看到控制檯中的任何錯誤嗎? –

+0

嗯。我的腳本位於頁面頂部(位於wordpress上),因此必須位於標記之前。控制檯上只有1個錯誤,但似乎沒有關係。我甚至創建了一個只包含文本的新測試div,但仍然沒有生成PDF。控制檯還顯示正在加載jspdf.debug.js。 – mickdeez