2016-10-22 49 views
4

我目前使用wkhtmltopdf,我試圖在用戶在我們的網站上提交表單後生成.pdf文件。表單數據被提交到post.php,在那裏它很好地顯示爲一個格式化的網頁。我想生成這個確切頁面的.pdf文件。如何使用帶有POST數據的wkhtmltopdf

但是,當試圖執行wkhtmltopdf時,問題就開始了。我得到一個連續的循環,因爲我試圖從這個post.php文件裏面生成.pdf,這也是目標。

我也嘗試過include()單獨的PHP文件來處理exec()函數,但我仍然得到一個連續的循環。

也許視覺以下幫助:

form.php其中包含類似下面...

<form id="ecard" action="post.php" method="post"> 
    <input type="text" name="ecard_message" /> 
    <input type="submit" /> 
</form> 

post.php持有發佈數據,幷包含HTML是這樣的...

<div class="content"> 
     <?php echo $_POST['ecard_message']; ?> 
    </div> 

    <?php exec("wkhtmltopdf http://example.com/post.php ecard.pdf"); ?> 

我的代碼在exec()函數與這些文件分開運行時工作,但我該如何完成在同一個進程中的exec()自動?

任何洞察力非常感謝。

+0

*哼..... * ajax也許? –

+0

@Fred -ii-,這是一個可能性,並考慮到它。我一直認爲有更好的方式通過PHP,但也許不是。我在哪裏可以將ajax放在工作流程中? –

+0

在另一個'

...
'裏面你有執行者或者把所有內容都放在當前div中。另外,如果你的exec'd文件沒有某種形式的「退出」,那麼這可能是它循環的另一個原因。 –

回答

0

致電wkhtmltopdf http://example.com/post.php ecard.pdf將失去發佈數據,所以即使它工作,PDF也將是空的。

反而生成PDF格式爲html,然後將其傳遞給wkhtmltopdf。例如:(未經測試)

<?php 
    $html = '<div class="content">' . $_POST['ecard_message'] . '</div>'; 
    exec("echo $html | wkhtmltopdf - ecard.pdf"); 
?> 

使用文本而不是文件的說明,請參見Is there any wkhtmltopdf option to convert html text rather than file?

相關問題