2016-10-27 1 views
0

J'ai quelques difficultés à essayer l'exemple de la bibliothèque Snappy. Lorsque j'essaie d'afficher à l'aide de la fonction getOutput, le navigateur retourne un message ERR_INVALID_RESPONSE. J'ai essayé la solution publiée here mais cela ne fonctionne pas pour moi.Affichage de la génération pdf Laravel (bibliothèque Snappy) retour ERR_INVALID_RESPONSE

voici mon code sur ma fonction:

// 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'); 

Votre aide/suggestions/conseils seront très apprciated. Merci d'avance!

Répondre

0

Essayez d'enregistrer le fichier PDF en premier dans votre stockage local, puis renvoyez la réponse.

Il ressemblera à quelque chose comme ceci:

$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; 

Puisque vous utilisez Laravel je vous suggère d'utiliser l'emballage Laravel pour Snappy

Snappy PDF/Image Wrapper for Laravel 5 and Lumen 5.1

0

Je pense wkhtmltopdf de binaire est manquant. Vous pouvez l'installer en exécutant cette commande à partir du dossier où vous avez votre projet Laravel:

$ composer require h4cc/wkhtmltopdf-i386 0.12.x 

ou pour le système 64 bits:

$ composer require h4cc/wkhtmltopdf-amd64 0.12.x 

Ensuite, vous devez modifier cette ligne dans votre funciton :

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

à

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

source: Wkhtmltopdf binary installation as composer dependency

+0

je vous remercie pour votre réponse @pnsh .. J'ai eu le correctif d'erreur :) j'ai besoin cependant une autre aide quand j'avais cette ligne sur mon application echo $ snappy-> getOutput ('http://myapp.com/generatepdf '); Je génère le pdf bien mais il montre la page de connexion au lieu de la page que je veux convertir sur pdf. pouvez-vous s'il vous plaît me donner quelques suggestions comment je peux le faire? Merci d'avance –

+0

@ShadrachBaldon La sortie du pdf dépend de ce que vous affichez sur la page "geneartepdf" (paramètre de la méthode getOutput). Je suppose que cette route est sous le middleware d'authentification, c'est pourquoi il vous redirige sur la page de connexion. Puisque ma réponse a résolu votre problème d'origine, considérez s'il vous plaît cette question. – pnsh