2016-10-27 83 views
0

我嘗試使用snappy庫的示例時遇到了一些麻煩。當我試圖使用getOutput函數顯示瀏覽器正在返回一個ERR_INVALID_RESPONSE。我試瞭解here的解決方案,但它不適合我。Laravel pdf生成顯示(snappy庫)返回ERR_INVALID_RESPONSE

這裏是我在我的功能代碼:

// Display the resulting pdf in the browser 
    // by setting the Content-type header to pdf 
    $snappy = new Pdf('/usr/local/bin/wkhtmltopdf'); 
    header('Content-Type: application/pdf',true,200); 
    header('Content-Disposition: attachment; filename="file.pdf"'); 
    echo $snappy->getOutput('http://www.github.com'); 

你的幫助/建議/意見將非常apprciated。先謝謝你!

回答

0

嘗試首先在本地存儲器中保存pdf,然後返回響應。

它會是這個樣子:

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf'); 
$snappy->save('path/to/your/storage'); 
$response = Response::make(Storage::get('path/to/your/storage'), 200); 
$response->header("Content-Type", 'application/pdf'); 
$response->header("Content-Disposition", 'attachment; filename=file.pdf'); 
return $response; 

由於您使用Laravel我會建議你使用Laravel包裝的瞬間

Snappy PDF/Image Wrapper for Laravel 5 and Lumen 5.1

0

我的猜測wkhtmltopdf的二進制不見了。

$ composer require h4cc/wkhtmltopdf-i386 0.12.x 

或64位系統:

$ composer require h4cc/wkhtmltopdf-amd64 0.12.x 

然後,你需要改變這一行中的功能可按 您可以從那裏你有你的Laravel項目的文件夾執行此命令進行安裝:

$snappy = new Pdf('/usr/local/bin/wkhtmltopdf'); 

$snappy = new Pdf(base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64')); 

來源:Wkhtmltopdf binary installation as composer dependency

+0

謝謝@pnsh的回覆..我有錯誤修復:)不過,我需要別人來幫助,當我有我的應用程序 回聲$ snappy-> getOutput(這一行的「http:/ /myapp.com/generatepdf'); 我生成的PDF很好,但它顯示登錄頁面,而不是我想要在PDF上轉換的頁面。你可以給我一些建議,我可以做到這一點? 預先感謝您 –

+0

@ShadrachBaldon pdf的輸出取決於您在「geneartepdf」頁面上呈現的內容(getOutput方法的參數)。我的猜測是這條路由在身份驗證中間件下,這就是爲什麼它在登錄頁面上重定向你。由於我的答案解決了您的原始問題,請考慮關閉此問題。 – pnsh

相關問題