簡體   English   中英

KnpSnappyBundle PDF生成超過了最大執行時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM