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 PNGAprè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 bitsuname -a2. 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.x3. 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-amd644. 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. >
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class, 'SnappyImage' => 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('welcome', $data);
return $pdf->download('welcome.pdf');
//二、渲染页面,在浏览器中显示
$html = '<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>';
$pdf = \PDF::loadHTML($html);
return $pdf->inline();
Image
//一、下载 $img = \SnappyImage::loadView('welcome', $data); return $img->download('welcome.png'); //二、渲染页面,在浏览器中显示 $html = '<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>'; $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-list
Une 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=zhSur 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\Fontset 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!