ホームページ  >  記事  >  バックエンド開発  >  PHPでHTMLを画像に変換する方法の紹介

PHPでHTMLを画像に変換する方法の紹介

巴扎黑
巴扎黑オリジナル
2017-08-22 17:55:262480ブラウズ

次のエディターは、php で html を画像に変換する実装方法を提供します。編集者はこれがとても良いと思ったので、参考として共有します。エディターに従って、コンパイルされた HTML をサーバー側で解析して画像に変換してみましょう。

HTMLは通常クライアントのブラウザによって解析されるため、サーバーはHTMLコードを直接解析できません。したがって、この要件を完了するには、php クラス ライブラリと拡張機能を使用する必要があります。

ファイル変換プロセスは html —> pdf —> png です。

使用する必要があるクラス ライブラリは、mPDF、imagick

pdf です。公式のダウンロード アドレスは、http://www.mpdf1.com/mpdf/index.php (少し大きいですが、6.0 をお勧めします)。これはクラスライブラリです。直接ダウンロードしてサーバーにアップロードするだけです。その中には新しいhtml2pdfフォルダーを作成し、

include('./html2pdf/mpdf');

関数全体を導入します。基本的に HTML から PDF への問題を解決します。注意してください。問題は、mpdf が HTML 内のすべての CSS スタイル (位置ボーダー半径など) を効果的に識別できないことです。マージンを使用して位置を解決できます。丸い画像を表示する必要がある場合は、画像を円形にトリミングする必要があります。

次のステップは、PDF を PNG 画像に変換することです

このステップでは、サーバーに ImageMagick コンポーネントをインストールし、一度にコマンドを実行する必要があります

/*
名称  html转换为pdf图片
功能  将html页面转换为pdf图片(部分css样式无法识别)
参数数量 2个
1.必须 html代码 可以用file_get_contenth获取
2.必须 生成pdf存放位置路径
3.非必须 pdf宽
4.非必须 pdf高
返回值 图片名称
实例  code($html,'img/1.pdf');
 * */
function html2pdf($html, $PATH, $w=414 ,$h=736){
 //设置中文字体(很重要 它会影响到第二步中 图片生成)
$mpdf=new mPDF('utf-8');
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
//设置pdf的尺寸
$mpdf->WriteHTML(&#39;<pagebreak sheet-size="&#39;.$w.&#39;mm &#39;.$h.&#39;mm" />&#39;);


//设置pdf显示方式
$mpdf->SetDisplayMode(&#39;fullpage&#39;);

//删除pdf第一页(由于设置pdf尺寸导致多出了一页)
$mpdf->DeletePages(1,1);

$mpdf->WriteHTML($html);

$pdf_name = md5(time()).&#39;.pdf&#39;;

$mpdf->Output($PATH.$pdf_name);

return $pdf_name;

}
このステップでは、実行に注意してください


yum install -y ImageMagick
yum install -y ImageMagick-devel
yum install -y gcc
yum install -y php-pear
yum install -y ghostscript
yum install -y ghostscript-devel.x86_64

クエリ結果によると、インストールすることを選択したサーバーのバージョンは5.6.3です


yum list |grep imagick

サーバーを再起動します


yum install -y php56w-pecl-imagick.x86_64
yum install -y php56w-pecl-imagick-devel.x86_64

phpinfo()を使用するか、php -m grep imagickを実行します。インストールが成功したか確認してください


後は、生成されたpdfを関数を使ってpngに変換するだけ


service nginx restart
service php-fpm restart

okで、簡単なページの画像がほぼ完成します。画像サイズは約1Mです。小さすぎてはっきりわかりません。

以上がPHPでHTMLを画像に変換する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。