Comment convertir du HTML en image en php

藏色散人
Libérer: 2023-03-04 09:02:01
original
4163 Les gens l'ont consulté

Comment convertir du php html en images : téléchargez d'abord les bibliothèques de classes mPDF et imagick ; puis créez une méthode "html2pdf" et définissez la taille et le mode d'affichage du pdf puis utilisez des commandes telles que "yum install - ; y ImageMagick" Convertissez simplement le pdf en image png.

Comment convertir du HTML en image en php

Recommandé : "Tutoriel vidéo PHP"

Analyser et convertir le code HTML compilé en images côté serveur.

Étant donné que le HTML est généralement analysé par le navigateur client, le serveur ne peut pas analyser le code HTML directement. Nous devons donc utiliser des bibliothèques de classes et des extensions PHP pour répondre à cette exigence.

Le processus de conversion de fichier est html —> pdf —>png.

La bibliothèque de classes que vous devez utiliser est mPDF, imagick

pdf L'adresse de téléchargement officielle est : http://www.mpdf1.com/mpdf/index.php (c'est recommandé. pour utiliser 6.0 bien qu'il soit trop gros) Cliquez) Il s'agit d'une bibliothèque de classes qui peut être directement téléchargée et téléchargée sur le serveur. Elle contient beaucoup de choses. Créez un nouveau dossier html2pdf et introduisez

include('./html2pdf/mpdf');
Copier après la connexion

un tout. function

/*
名称  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;
 
}
Copier après la connexion

Vous pouvez essentiellement utiliser cette fonction Pour résoudre le problème du HTML en PDF, il convient de noter que mpdf ne peut pas identifier efficacement tous les styles CSS en HTML, tels que la position frontière-radius, etc. La position peut être résolue à l'aide de la marge. Si vous devez afficher une image arrondie, vous devez recadrer l'image en cercle.

L'étape suivante consiste à convertir les images PDF en images PNG. Cette étape nécessite d'installer le composant ImageMagick sur le serveur et d'exécuter la commande une fois

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
Copier après la connexion

À cette étape, faites attention à exécuter

.
yum list |grep imagick
Copier après la connexion

selon les résultats de la requête. Selon la version de votre serveur, je choisis d'installer 5.6.3

yum install -y php56w-pecl-imagick.x86_64
yum install -y php56w-pecl-imagick-devel.x86_64
Copier après la connexion

Redémarrer le serveur

service nginx restart
service php-fpm restart
Copier après la connexion

Utiliser phpinfo() ou exécuter php -m | grep imagick pour vérifier si l'installation a réussi

Ensuite, utilisez la fonction pour convertir le pdf généré en png

/*
名称  pdf转换为png图片
功能  将pdf图片转换为png图片
参数数量 2个
1.必须 html代码 可以用file_get_contenth获取
2.必须 生成pdf存放位置路径
 
实例  code($html,&#39;img/1.pdf&#39;);
 * */
function pdf2png($PDF, $PNG, $w=50, $h=50){
if(!extension_loaded(&#39;imagick&#39;)){
return false;
}
if(!file_exists($PDF)){
return false;
}
 
$im = new Imagick();
 
$im->setResolution($w,$h); //设置分辨率
$im->setCompressionQuality(15);//设置图片压缩的质量
 
$im->readImage($PDF);
$im -> resetIterator();
$imgs = $im->appendImages(true);
$imgs->setImageFormat( "png" );
$img_name = $PNG;
$imgs->writeImage($img_name);
$imgs->clear();
$imgs->destroy();
$im->clear();
$im->destroy();
 
return $img_name;
}
Copier après la connexion

ok, l'image de la page simple est pratiquement terminée. La taille de l'image est d'environ 1 M. C'est trop petit pour être clair.

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:php.cn
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