环境:
WINDOWS SERVER 2012
PHP Version 7.0.28
Thread Safety disabled
imagick module version 3.4.3
PHP7.0 + thinkphp5.0
需求:
想要把html网页转化为png图片。
实现:
一、先安装PHP扩展
1.把php.imagick.dll复制到配置的扩展目录中,默认是php根目录下的ext文件夹。
2.配置php.ini文件,增加 extension=php_imagick.dll
二、解压ImageMagick.zip并复制bin目录所有的dll文件到php的根目录下。
三、安装gs.exe,以管理员身份打开安装。
四、把ImageMagick解压后的目录下的bin目录加到系统环境变量中。
五、把gs.exe安装目录下的bin目录加到系统环境变量中。
六、php代码
public function prints1()
{
$pdf = new Mpdf();
$pdf->useAdobeCJK = true;
$pdf->autoScriptToLang = true;
$pdf->autoLangToFont = true;
$html = file_get_contents('http://xx/xx/xx/table.html?id='.$_GET['infoid']);
$pdf_name = md5(time()).'.pdf';
$pdf->WriteHtml($html);
$fileName = "D:/test/test.pdf";
$pdf->Output($fileName);
$PDF123 = "D://test//601a98420c16b56cb4b214226ae1e40b.pdf";
$PNG123 = 'test13222222111112.png';
return $this->pdf2png($fileName,$PNG123);
}
public 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);//设置图片压缩的质量
try{
$im->readImage("D:/test/test.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 $imgs;
}catch(\Exception $e){
var_dump($e->getMessage());
}
}
七、调试过程遇到很多坑,如有不明白的私信。