Maison > cadre php > Laravel > le corps du texte

Comment Laravel utilise le package laravel-snappy pour convertir du HTML en PDF et PNG

藏色散人
Libérer: 2020-10-14 16:15:55
avant
2984 Les gens l'ont consulté
Ce qui suit est

Laravel La colonne tutoriel donne à tout le monde le package Laravel-SnAppy pour implémenter HTML en PDF et PNG, j'espère que cela sera utile aux amis qui en ont besoin !

Comment Laravel utilise le package laravel-snappy pour convertir du HTML en PDF et PNG

Avant-propos

Puisque l'entreprise va développer un nouvel outil appelé cloud contract, elle peut prédéfinissez plusieurs Définissez un modèle de contrat fixe (page html), utilisez la méthode de remplissage des paramètres pour modifier de manière flexible les données du contrat, puis générez des PDF et des PNG

Après vérification, nous avons trouvé le package
et la couche inférieure utilise laravel-snappy. wkhtmltopdf est construit sur wkhtmltopdf, et QT Webkit est basé sur QT Webkit, le même moteur de rendu que notre navigateur. Webkit

Installation

1. Vérifiez d'abord si le système est 32 bits ou 64 bits

uname -a
Copier après la connexion
2. via composer wkhtmltopdf

32位:
$ composer require h4cc / wkhtmltopdf-i386 0.12.x
$ composer require h4cc / wkhtmltoimage-i386 0.12.x
64位:
$ composer require h4cc/wkhtmltopdf-amd64 0.12.x
$ composer require h4cc/wkhtmltoimage-amd64 0.12.x
Copier après la connexion

3. Ensuite, copiez le wkhtmltopdf installé dans le répertoire de la commande exécutable du système Linux

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

4. Installez le package laravel-snappy

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

<. 🎜 >

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

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

2. >

&#39;PDF&#39; => Barryvdh\Snappy\Facades\SnappyPdf::class,
&#39;SnappyImage&#39; => Barryvdh\Snappy\Facades\SnappyImage::class,
Copier après la connexion

dans le tableau aliases en php 3. Générez le fichier de configuration

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

Remarque : snappy.php dans le dossier config est son fichier de configuration, et le binaire pointe vers celui installé ci-dessus Chemin associé à wkhtml.

Utilisez

PDF

//一、下载
$pdf = \PDF::loadView(&#39;welcome&#39;, $data);
return $pdf->download(&#39;welcome.pdf&#39;);

//二、渲染页面,在浏览器中显示
$html = &#39;<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>&#39;;
$pdf = \PDF::loadHTML($html);
return $pdf->inline();
Copier après la connexion
Image

//一、下载
$img = \SnappyImage::loadView(&#39;welcome&#39;, $data);
return $img->download(&#39;welcome.png&#39;);

//二、渲染页面,在浏览器中显示
$html = &#39;<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>&#39;;
$img = \SnappyImage::loadHTML($html);
return $img->inline();
Copier après la connexion
Enregistrement de piétinement

1 Lors de l'exécution de la génération, s'il invite la bibliothèque ou

. n'existe pas, il est nécessaire d'installer la bibliothèque correspondante

//apt-get 安装方法
apt-get install libXrender*
apt-get install libssl*

//yum 安装方法
yum install libXrender*
yum install libssl*

//若 yum 安装时最后报错 Error: GPG check FAILED
yum install libXrender* --nogpgcheck
yum install libssl* --nogpgcheck
Copier après la connexion
libXrender 2. Le problème du chinois affichant des caractères tronqués Ce problème doit être résolu en installant des polices chinoises sous Linux libssl

Afficher les polices système.

Avant de commencer l'installation, nous vérifions d'abord les polices qui ont été installées dans le système. Pour afficher les polices qui ont été installées dans le système, nous pouvons utiliser la commande

pour les afficher s'il n'y en a pas. dans le système, nous devons d’abord installer les progiciels appropriés.

Sur centos, utilisez la commande suivante pour installer :

yum install -y fontconfig mkfontscale
Copier après la connexion
fc-listUne fois l'installation terminée, nous pouvons visualiser les polices déjà installées dans le système
[root@8d079be5059a php]# fc-list
/usr/share/fonts/urw-base35/NimbusMonoPS-Italic.otf: Nimbus Mono PS:style=Italic
/usr/share/fonts/urw-base35/D050000L.t1: D050000L:style=Regular
...
Copier après la connexion

Si vous souhaitez afficher le chinois polices qui ont été installées dans le système Pour les polices, nous pouvons utiliser la commande suivante

[root@8d079be5059a php]# fc-list :lang=zh
Copier après la connexion

Sur l'image ci-dessus, nous pouvons voir qu'il n'y a pas de polices chinoises dans le système

Nous entrons dans Windows répertoire des polices

C:\Windows\Fonts
Copier après la connexion

et changez simfang. Copiez la police ttf à distance ou placez-la dans le répertoire des polices du serveur d'une autre manière

//远程复制
scp simfang.ttf root@ip:/usr/share/fonts
Copier après la connexion

Créez ensuite les informations d'index des polices et mettez à jour le cache des polices.

cd /usr/share/fonts/mkfontscale
mkfontdir
fc-cache
Copier après la connexion

À ce stade, la police a été installée. Vérifions maintenant les polices chinoises et voyons si elles sont installées avec succès

[root@8d079be5059a php]# fc-list :lang=zh
/usr/share/fonts/simfang.ttf: FangSong,仿宋:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
Copier après la connexion

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!

Étiquettes associées:
source:learnku.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal