다음 편집기는 HTML을 PHP에서 이미지로 변환하는 구현 방법을 제공합니다. 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리고자 합니다. 편집기를 따라가서 살펴보겠습니다.
컴파일된 HTML을 서버 측에서 구문 분석하고 이미지로 변환합니다.
html은 일반적으로 클라이언트 브라우저에서 구문 분석되므로 서버는 html 코드를 직접 구문 분석할 수 없습니다. 따라서 이 요구 사항을 완료하려면 PHP 클래스 라이브러리와 확장을 사용해야 합니다.
파일 변환 과정은 html —> pdf —>png입니다.
사용해야 하는 클래스 라이브러리는 mPDF, imagick
pdf입니다. 공식 다운로드 주소는 http://www.mpdf1.com/mpdf/index.php입니다(조금 더 크지만 6.0을 권장합니다). ). 이것은 클래스 라이브러리입니다. 서버에 직접 다운로드하여 업로드하면 됩니다. 새로운 html2pdf 폴더를 만들고
include('./html2pdf/mpdf');
전체 기능을 소개하세요.
/* 名称 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; }
기본적으로 HTML을 pdf로 변환하는 문제를 해결하십시오. 주의하십시오. 문제는 mpdf가 위치 테두리 반경 등과 같은 HTML의 모든 CSS 스타일을 효과적으로 식별할 수 없다는 것입니다. 위치는 여백을 사용하여 해결할 수 있습니다. 둥근 이미지를 표시해야 하는 경우 이미지를 원형으로 잘라야 합니다.
다음 단계는 pdf를 png 이미지로 변환하는 것입니다. 이 단계에서는 서버에 ImageMagick 구성 요소를 설치하고 한 번에 명령을 실행해야 합니다
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
이 단계에서는 실행에 주의하세요
yum list |grep imagick
쿼리 결과에 따르면 내가 설치하기로 선택한 서버 버전은 5.6.3
yum install -y php56w-pecl-imagick.x86_64 yum install -y php56w-pecl-imagick-devel.x86_64
서버를 다시 시작하세요
service nginx restart service php-fpm restart
phpinfo()를 사용하거나 php -m | 설치가 잘 되었는지 확인해주세요
그런 다음 생성된 pdf를 png
/* 名称 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; }
ok로 변환하는 기능을 이용하시면 기본적으로 간단한 페이지의 그림이 완성됩니다. 이미지 크기는 약 1M입니다. 너무 작아서 명확하지 않습니다.
위 내용은 PHP에서 HTML을 이미지로 변환하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!