Table des matières
订单id
12346546
Maison cadre php Laravel Un article expliquant comment exporter des PDF avec Laravel-snappy

Un article expliquant comment exporter des PDF avec Laravel-snappy

Aug 30, 2021 pm 03:27 PM
pdf

La colonne tutorielle suivante de Laravel vous présentera comment utiliser Laravel-snappy pour exporter des PDF. J'espère qu'elle sera utile aux amis qui en ont besoin !

Avant-propos

Il existe de nombreux articles sur la façon d'utiliser Laravel-snappy dans le forum, mais beaucoup d'entre eux se concentrent uniquement sur l'installation et des exemples de base. Ils n'expliquent pas l'utilisation des applications réelles et ne répondent pas à certaines questions et doutes. donc dans Trions cela et gardons-le comme un enregistrement.

Installation

Prenons Ubuntu comme exemple

1 Exécutez l'installation wkhtmltopdf :

composer require h4cc/wkhtmltopdf-amd64 0.12.x
composer require h4cc/wkhtmltoimage-amd64 0.12.x
Copier après la connexion

Comme son nom l'indique, wkhtmltopdf et wkhtmltoimage sont installés respectivement.

2. Copiez wkhtmltopdf dans le répertoire de la commande exécutable Ubuntu

sudo cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/
sudo cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/
//并使其可执行:
sudo chmod +x /usr/local/bin/wkhtmltoimage-amd64 
sudo chmod +x /usr/local/bin/wkhtmltopdf-amd64
Copier après la connexion

3. Installez laravel-snappy

composer require barryvdh/laravel-snappy
Copier après la connexion

4 Ajoutez ServiceProvider au tableau des fournisseurs dans config/app.php

Barryvdh\Snappy\ServiceProvider::class
Copier après la connexion

5. tableau d'alias dans config/app.php

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
Copier après la connexion

6. Exécutez le fichier de configuration généré

php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"
Copier après la connexion

Vous pouvez voir que le fichier de configuration par défaut est config/snappy.php:

return [
    'pdf' => [
        'enabled' => true,
        'binary'  => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf'),
        'timeout' => false,
        'options' => [],
        'env'     => [],
    ],
    'image' => [
        'enabled' => true,
        'binary'  => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage'),
        'timeout' => false,
        'options' => [],
        'env'     => [],
    ],
];
Copier après la connexion

Notez qu'il y a un trou ici, le binaire par défaut. configuration Pour /usr/local/bin/wkhtmltopdf et /usr/local/bin/wkhtmltoimage, lorsque vous l'utilisez pour la première fois, un message d'erreur /usr/local/bin/wkhtmltopdf sera signalé car sous Linux. system, wkhtmltopdf et Les vrais chemins et noms de wkhtmltoimage sont : /usr/local/bin/wkhtmltopdf-amd64 et /usr/local/bin/wkhtmltoimage-amd64.

Un article expliquant comment exporter des PDF avec Laravel-snappy

Par conséquent, vous devez modifier les informations de configuration pour :

'pdf' => [
        ...
        'binary'  => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf-amd64'),
        ...
    ],
    'image' => [
        ...
        'binary'  => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage-amd64'),
        ...
    ],
Copier après la connexion

Commencer à utiliser

//使用方法1
$pdf = \PDF::loadView('welcome', $data);
return $pdf->download('welcome.pdf');
//使用方法2
$html = &#39;<html><head><meta charset="utf-8"></head><h1 id="订单id">订单id</h1><h2 id="">12346546</h2></html>&#39;;
$pdf = \PDF::loadHTML($html);
return $pdf->inline();
Copier après la connexion

De nombreux blogs n'ont pas mentionné que dans la méthode 1, une telle erreur sera signalée :

The exit status code &#39;1&#39; says something went wrong: stderr: "Loading pages (1/6) [> ] 0% [======> ] 10% QSslSocket: cannot resolve CRYPTO_num_locks QSslSocket: cannot resolve CRYPTO_set_id_callback QSslSocket: cannot resolve CRYPTO_set_locking_callback QSslSocket: cannot resolve sk_free QSslSocket: cannot resolve sk_num QSslSocket: cannot resolve sk_pop_free QSslSocket: cannot resolve sk_value QSslSocket: cannot resolve SSL_library_init QSslSocket: cannot resolve SSL_load_error_strings QSslSocket: cannot resolve SSLv3_client_method QSslSocket: cannot resolve SSLv23_client_method QSslSocket: cannot resolve SSLv3_server_method QSslSocket: cannot resolve SSLv23_server_method QSslSocket: cannot resolve X509_STORE_CTX_get_chain QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf QSslSocket: cannot resolve SSLeay QSslSocket: cannot call unresolved function CRYPTO_num_locks QSslSocket: cannot call unresolved function CRYPTO_set_id_callback QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback QSslSocket: cannot call unresolved function SSL_library_init QSslSocket: cannot call unresolved function SSLv23_client_method QSslSocket: cannot call unresolved function sk_num [==================> ] 31% QSslSocket: cannot call unresolved function SSLv23_client_method QSslSocket: cannot call unresolved function SSL_library_init [============================================================] 100% Counting pages (2/6) [============================================================] Object 1 of 1 Resolving links (4/6) [============================================================] Object 1 of 1 Loading headers and footers (5/6) Printing pages (6/6) [> ] Preparing [============================================================] Page 1 of 1 Done Exit with code 1 due to network error: UnknownNetworkError QSslSocket: cannot call unresolved function CRYPTO_num_locks QSslSocket: cannot call unresolved function CRYPTO_set_id_callback QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback " stdout: "" command: /usr/local/bin/wkhtmltopdf-amd64 --lowquality &#39;/tmp/knp_snappy612c3edcdfc855.21787864.html&#39; &#39;/tmp/knp_snappy612c3edcdfce49.80482557.pdf&#39;.
Copier après la connexion

Exécuter :

sudo apt-get update
sudo apt install libssl1.0-dev
Copier après la connexion

Réparer terminé, exportez la page d'accueil.

Si vous utilisez la méthode save () pour enregistrer, il sera enregistré par défaut dans le dossier /public. Si le nom du fichier est le même, la deuxième sauvegarde indiquera que le fichier existe déjà.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment intégrer un document PDF dans une feuille de calcul Excel Comment intégrer un document PDF dans une feuille de calcul Excel May 28, 2023 am 09:17 AM

Comment intégrer un document PDF dans une feuille de calcul Excel

3 façons d'obtenir du texte à partir d'un PDF sur iPhone 3 façons d'obtenir du texte à partir d'un PDF sur iPhone Mar 16, 2024 pm 09:20 PM

3 façons d'obtenir du texte à partir d'un PDF sur iPhone

Comment vérifier la signature dans un PDF Comment vérifier la signature dans un PDF Feb 18, 2024 pm 05:33 PM

Comment vérifier la signature dans un PDF

Comment traiter des fichiers PDF en utilisant PHP Comment traiter des fichiers PDF en utilisant PHP Jun 19, 2023 pm 02:41 PM

Comment traiter des fichiers PDF en utilisant PHP

Comment définir la méthode d'ouverture par défaut du PDF dans Win11 Tutoriel sur la définition de la méthode d'ouverture par défaut du PDF dans Win11 Comment définir la méthode d'ouverture par défaut du PDF dans Win11 Tutoriel sur la définition de la méthode d'ouverture par défaut du PDF dans Win11 Feb 29, 2024 pm 09:01 PM

Comment définir la méthode d'ouverture par défaut du PDF dans Win11 Tutoriel sur la définition de la méthode d'ouverture par défaut du PDF dans Win11

Comment convertir des fichiers png en pdf Comment convertir des fichiers png en pdf Nov 14, 2023 am 10:41 AM

Comment convertir des fichiers png en pdf

Comment fusionner des PDF sur iPhone Comment fusionner des PDF sur iPhone Feb 02, 2024 pm 04:05 PM

Comment fusionner des PDF sur iPhone

Comment exporter des fichiers Xmind vers des fichiers PDF Comment exporter des fichiers Xmind vers des fichiers PDF Mar 20, 2024 am 10:30 AM

Comment exporter des fichiers Xmind vers des fichiers PDF

See all articles