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

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

藏色散人
藏色散人avant
2020-10-14 16:14:453065parcourir
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
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

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

4. Installez le package laravel-snappy

composer require barryvdh/laravel-snappy
<.>

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

Barryvdh\Snappy\ServiceProvider::class,

2. >

&#39;PDF&#39; => Barryvdh\Snappy\Facades\SnappyPdf::class,
&#39;SnappyImage&#39; => Barryvdh\Snappy\Facades\SnappyImage::class,

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

php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"

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();
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();
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
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
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
...
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
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
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

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

cd /usr/share/fonts/mkfontscale
mkfontdir
fc-cache

À 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

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer