[英]KnpSnappyBundle PDF generation exceeds maximum execution time
我正在嘗試使用Symfony中的KnpSnappyBundle生成PDF,但是每當我嘗試運行操作來這樣做時,它都超過了PHP中最長60秒的執行時間。
這是動作:
/**
* @Route("/download-agreement", name="download_agreement")
*/
public function downloadAgreementAction()
{
$session = new Session();
$html = $this->renderView('client-representation.html.twig', array(
'clientAgreementData' => $session->get("sessionClientAgreementData"),
"pdfStatus" => true
));
return new Response(
$this->get('knp_snappy.pdf')->getOutputFromHtml($html),
200,
array(
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'attachment; filename="error.pdf"'
)
);
}
當我在樹枝模板中為資產使用絕對URL時,似乎也僅超過執行時間,例如absolute_url(asset('css/agreement.css'))
。 如果我使用相對URL,則CSS只會被忽略,並且會生成PDF,但是我當然需要樣式。
有任何想法嗎?
編輯:對於任何有此問題的人,使用絕對URL應該在生產服務器上工作; 但是在本地主機上,您可能會遇到我的問題。 謝謝你的挑戰 。
好的,解決方案實際上非常簡單,問題在於它不能在dev(local)環境下工作,因為某種原因wkhtmltopdf不喜歡localhost:8000 ...等等。
從這個問題 (以及許多其他問題)開始,在laravel軟件包中解決了這個問題。
捆綁包中的另一個https://github.com/KnpLabs/KnpSnappyBundle/issues/66
第一次使用KnpSnappyBundle時,我使用了許多替代方法,但均未成功。
嘗試使用包含一個或多個絕對URL的視圖(與Pdf
類的所有相關方法相同)生成pdf時,發生“超出超時”。
為了解決此錯誤,我使用了僅用於Pdf生成的特定模板,在該模板中,將CSS直接放在<style></style>
塊中。
這樣,樣式就可以正確應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.