2014-02-19 114 views
1

我製作了一個簡單的網頁(html),其中包含幾個JavaScript,就像測驗一樣。用戶填寫文本字段並按下按鈕以獲得答案,當他們點擊提交按鈕後,JavaScrrpt會計算得分並呈現它。用pdf導出HTML用pdf

因此,我的網頁是index.html,當用戶點擊提交時,它仍然在此頁面上,但它顯示結果,如: WELL DONE! 姓名,身份證,電子郵件等(來自文本字段) 你的分數是:144(這是由JS計算)。

因此,現在,我想在此結果下面添加一個按鈕,例如「PDF」。當用戶點擊它時,它將在新標籤中打開一個pdf文檔,並在計算後在index.html上顯示結果。 pdf應該像index.html頁面一樣被格式化。

我試圖找出如何做這個pdf的東西,我找不到解決方案。問題是我希望這個頁面在本地打開,而不是在服務器上打開。你可以建議我怎麼做,也許使用PHP(但它不會在本地工作)。我只想在任何計算機上覆制粘貼html文件和JavaScript,並且還需要在本地工作。只需在瀏覽器中打開並完成測驗,然後將結果導出爲pdf。

感謝名單

回答

1

你可以做你想做的在JavaScript中,使用這個庫: http://parall.ax/products/jspdf

您必須格式化欲與格式輸出爲您的PDF

+0

謝謝。這個jspdf庫是否支持CSS。我的意思是,我可以按照我喜歡的方式格式化輸出嗎?這個庫支持UTF-8嗎?我嘗試過,但它似乎是一個問題,不支持一些字母:( – mpavlovic89

+0

我認爲它不支持CSS,但在庫本身有一些選項來更改字體顏色等,它應該與UTF8因爲如果修改代碼(它位於pdf窗口旁邊)並在標題中輸入UTF-8字符,那麼在圖書館的主頁面(有一個圖像的示例),所以我猜它應該使用UTF -8.我還沒有嘗試過所有的字母,所以可能有一些限制。有一個參數來設置enconding:http://mrrio.github.io/jsPDF/doc/symbols/FontObject.html – arfarinha

1

下面是一個簡單的PDF例如用jsPDF

var doc = new jsPDF(); 
 
doc.text(20, 20, 'Hello world!'); 
 
doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.'); 
 
doc.text(20, 40, 'Do you like that?'); 
 
doc.output('save', 'filename.pdf');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"></script> 
 

 
<iframe id="pdf" type="application/pdf" src="" width="800" height="400"></iframe>