Heim >Backend-Entwicklung >PHP-Problem >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 mPDF
imagick
include('./html2pdf/mpdf');
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('<pagebreak sheet-size="'.$w.'mm '.$h.'mm" />'); //设置pdf显示方式 $mpdf->SetDisplayMode('fullpage'); //删除pdf第一页(由于设置pdf尺寸导致多出了一页) $mpdf->DeletePages(1,1); $mpdf->WriteHTML($html); $pdf_name = md5(time()).'.pdf'; $mpdf->Output($PATH.$pdf_name); return $pdf_name; }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
At Achten Sie in diesem Schritt darauf,
yum list |grep imagickLaut 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
Server neu starten
service nginx restart service php-fpm restartVerwenden 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,'img/1.pdf'); * */ function pdf2png($PDF, $PNG, $w=50, $h=50){ if(!extension_loaded('imagick')){ 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; }Empfohlenes 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!