ホームページ  >  記事  >  PHPフレームワーク  >  Laravel が laravel-snappy パッケージを使用して HTML を PDF および PNG に変換する方法

Laravel が laravel-snappy パッケージを使用して HTML を PDF および PNG に変換する方法

藏色散人
藏色散人転載
2020-10-14 16:14:452898ブラウズ

-次のチュートリアル列では、Laravel-Snappyパッケージを使用してHTMLをPDFとPNGに変換する方法を示します。困っている友人に役立つことを願っています。

Laravel が laravel-snappy パッケージを使用して HTML を PDF および PNG に変換する方法

まえがき

会社はクラウド コントラクトと呼ばれる新しいツールを開発したいと考えているため、事前に設定することができます。固定の契約書テンプレート(HTMLページ)を設定し、パラメータ入力方式で契約書のデータを柔軟に変更し、PDFとPNGを生成します。確認したところ、laravel-snappy

パッケージが見つかりました。使用するのは

wkhtmltopdf
wkhtmltopdfQT Webkit に基づいて構築され、QT WebkitWebkit に基づいています。 、ブラウザと同じレンダリング エンジン。 ##インストール

1. まず、システムが 32 ビットか 64 ビットかを確認します。

uname -a
2. インストールします。コンポーザー 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. 次に、インストールした wkhtmltopdf を 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 のディレクトリにコピーします。laravel-snappy パッケージ

composer require barryvdh/laravel-snappy
## をインストールします。

#Configuration

1. config/app.php のプロバイダー配列に ServiceProvider を追加します

Barryvdh\Snappy\ServiceProvider::class,
2. config/app にファサードを追加します。 php
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
3 の配列。構成ファイルを生成します

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

注: config フォルダー内の snappy.php はその構成ファイルであり、バイナリは wkhtml 関連の上にインストールされたものを指します。 path.

Use

PDF

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

//二、渲染页面,在浏览器中显示
$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();

トレーニング レコード

1. 生成の実行時に、プロンプト

libXrender

または が表示された場合、 libssl ライブラリが存在しないため、対応するライブラリをインストールする必要があります。

//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

2. 中国語表示が文字化けする問題 この問題は、Linux に中国語フォントをインストールすることで解決する必要があります。 システム フォントの表示 インストールを開始する前に、まずシステムにインストールされているフォントを確認します。システムにインストールされているフォントを確認するには、fc-list## を使用します。 # コマンドを使用して表示します。システムにそのようなコマンドがない場合は、最初に関連するソフトウェア パッケージをインストールする必要があります。

centos では、次のコマンドを使用してインストールします。

yum install -y fontconfig mkfontscale
インストールが完了すると、システムに既にインストールされているフォントを表示できます。

[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
...

中国語を表示したい場合は、システムにインストールされているフォント フォントの場合は、次のコマンドを使用できます。 <pre class="brush:php;toolbar:false">[root@8d079be5059a php]# fc-list :lang=zh</pre> 上の図から、システムに中国語フォントがないことがわかります。

Windows に入ります。フォント ディレクトリ

C:\Windows\Fonts
を変更し、simfang を変更します。ttf フォントをリモートでコピーするか、他の方法でサーバーのフォント ディレクトリに置きます

//远程复制
scp simfang.ttf root@ip:/usr/share/fonts

次に、フォント インデックス情報を作成し、フォント キャッシュを更新します

cd /usr/share/fonts/mkfontscale
mkfontdir
fc-cache
この時点で、フォントはインストールされています。次に、中国語フォントをチェックして、正常にインストールされたかどうかを確認してみましょう

[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

以上がLaravel が laravel-snappy パッケージを使用して HTML を PDF および PNG に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。