PHP-Methode zum Konvertieren von HTML in Bilder

墨辰丷
Freigeben: 2023-03-27 12:58:02
Original
2615 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Methode zum Konvertieren von HTML in Bilder in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Parsen Sie auf der Serverseite, um den kompilierten HTML-Code in Bilder umzuwandeln.

Da HTML im Allgemeinen vom Client-Browser analysiert wird, kann der Server den HTML-Code nicht direkt analysieren. Daher müssen wir PHP-Klassenbibliotheken und -Erweiterungen verwenden, um diese Anforderung zu erfüllen.

Der Dateikonvertierungsprozess ist html —> pdf —>png.

Die Klassenbibliothek, die Sie verwenden müssen, ist mPDF, imagick

pdf Die offizielle Download-Adresse lautet: http://www.mpdf1.com/mpdf/index.php ( Empfohlen in 6.0 Obwohl es etwas groß ist) Dies ist eine Klassenbibliothek, die direkt heruntergeladen und auf den Server hochgeladen werden kann. Es gibt viele Dinge darin 🎜>

include('./html2pdf/mpdf');
Nach dem Login kopieren


Eine ganze Funktion


/*
名称  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;

}
Nach dem Login kopieren


Die Verwendung dieser Funktion kann grundsätzlich das Problem lösen Problem von HTML zu PDF Es ist zu beachten, dass mpdf nicht alle CSS-Stile in HTML, wie z. B. Position, Randradius usw., effektiv identifizieren kann. Die Position kann mithilfe des Randes ermittelt werden. Wenn Sie ein abgerundetes Bild anzeigen möchten, müssen Sie das Bild in einen Kreis zuschneiden.


Der nächste Schritt besteht darin, PDF-Bilder in PNG-Bilder zu konvertieren. Für diesen Schritt müssen Sie die ImageMagick-Komponente auf dem Server installieren

und den Befehl einmal ausführen

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
Nach dem Login kopieren


Führen Sie in diesem Schritt bitte



yum list |grep imagick
Nach dem Login kopieren


aus

entsprechend der Abfrage Als Ergebnis habe ich mich für die Installation von 5.6.3 entschieden


yum install -y php56w-pecl-imagick.x86_64
yum install -y php56w-pecl-imagick-devel.x86_64
Nach dem Login kopieren


den Server neu starten



service nginx restart
service php-fpm restart
Nach dem Login kopieren


Verwenden Sie phpinfo() oder führen Sie php -m | aus, um zu überprüfen, ob die Installation erfolgreich war


Dann Verwenden Sie die Funktion, um das generierte PDF zu konvertieren. Nur 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;
}
Nach dem Login kopieren


OK, das Bild einer einfachen Seite ist im Grunde fertig. Die Bildgröße beträgt ca. 1M. Es ist zu klein, um klar zu sein.


Verwandte Empfehlungen:

PHP

Bilder konvertieren

in Quellcode-Freigabe im ICO-Format

PHP
Bild konvertieren

in Quellcode im ICO-Format

PHP
Bild konvertieren

in JPG-Format und automatisch auf die angegebene Größe skalieren_PHP-Tutorial


Das obige ist der detaillierte Inhalt vonPHP-Methode zum Konvertieren von HTML in Bilder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!