Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie HTML in PHP in Bilder

So konvertieren Sie HTML in PHP in Bilder

王林
Freigeben: 2023-02-24 17:46:02
Original
5149 Leute haben es durchsucht

So konvertieren Sie HTML in PHP in Bilder

Parsen Sie den kompilierten HTML-Code auf der Serverseite und konvertieren Sie ihn in Bilder

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 mPDFimagick

PDF ist eine Klassenbibliothek, die Sie direkt herunterladen und dann auf den Server hochladen können Viele Dinge darin. Erstellen Sie einen neuen html2pdf-Ordner:

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

Beispiel:

/*
名称  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 HTML zu PDF Es ist zu beachten, dass mpdf nicht alle CSS-Stile in HTML, wie z. B. den Positionsrandradius 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

At Achten Sie in diesem Schritt darauf,

yum list |grep imagick
Nach dem Login kopieren

Laut den Abfrageergebnissen habe ich mich für die Installation von 5.6.3 entsprechend meiner Serverversion entschieden

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

Server neu starten

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

Verwenden Sie

oder führen Sie phpinfo() aus, um zu überprüfen, ob die Installation erfolgreich war, und verwenden Sie dann die Funktion, um das generierte PDF in PNG zu konvertieren. php -m | grep imagick

Beispiel:

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

Empfohlenes Tutorial:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie HTML in PHP 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