>  기사  >  백엔드 개발  >  PHP에서 HTML을 이미지로 변환하는 방법 소개

PHP에서 HTML을 이미지로 변환하는 방법 소개

巴扎黑
巴扎黑원래의
2017-08-22 17:55:262480검색

다음 편집기는 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(&#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;

}

기본적으로 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,&#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;
}

ok로 변환하는 기능을 이용하시면 기본적으로 간단한 페이지의 그림이 완성됩니다. 이미지 크기는 약 1M입니다. 너무 작아서 명확하지 않습니다.

위 내용은 PHP에서 HTML을 이미지로 변환하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.