>  기사  >  백엔드 개발  >  PHP에서 imagick을 사용하여 PDF를 Images_php 기술로 변환

PHP에서 imagick을 사용하여 PDF를 Images_php 기술로 변환

WBOY
WBOY원래의
2016-05-16 20:24:48948검색

PHP 매뉴얼에는 imagick에 대한 설명이 정말 간결하게 나와 있습니다. 각 멤버 함수를 클릭하여 열면 다음 텍스트가 표시됩니다.

코드 복사 코드는 다음과 같습니다.

경고
이 함수는 현재 문서화되어 있지 않습니다. 해당 인수 목록만 사용할 수 있습니다.

방금 PHP 로딩 문제를 해결한 후, 온라인에서 다음 단락을 찾았습니다.
이미지를 처리하는 것이 매우 편리합니다.
코드 복사 코드는 다음과 같습니다.

Header("콘텐츠 유형: image/jpeg")
/**
* 이미지 크기를 줄이세요.
*
* @param $image 처리할 바이너리 이미지
* @param $width 처리된 이미지 크기의 너비(px)
* @param $height 처리된 이미지 크기의 높이(px)
* @param $crop 이미지 자르기 여부
*
* @return 처리된 바이너리 이미지
*/
크기 조정 기능($image, $width, $height, $crop)
{
$imagick = 새로운 Imagick($image);
$w = $imagick->getImageWidth();
$h = $imagick->getImageHeight();
if ($w > $width || $h > $height)
{
만약 ($crop)
          {
            $imagick->cropThumbnailImage($width, $height);
}
       그 외
          {
            $imagick->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 1, true);
}
}
$processed_image = $imagick->getImageBlob();
$processed_image 반환;
}
$s=resize("123.jpg", 60, 40, 1);
에코 $s;
?>

하지만 제가 이 확장 기능으로 하고 싶은 것은 PDF를 PNG로 변환하는 것입니다. PDF!
코드 복사 코드는 다음과 같습니다.

/**
* PDF2PNG
* @param $pdf 처리할 PDF 파일
* @param $path 저장할 이미지 경로
* @param $page 내보낼 페이지 -1은 전체, 0은 첫 번째 페이지, 1은 두 번째 페이지
* @return 저장된 이미지의 경로와 파일명
*/
함수 pdf2png($pdf,$path,$page=-1)
{
if(!extension_loaded('imagick'))
{
        false 반환;                                  }  
If(!file_exists($pdf))
{
        false 반환;                                  }  
$im = 새로운 Imagick()
$im->setResolution(120,120)
$im->setCompressionQuality(100);
if($page==-1)
        $im->readImage($pdf);
그 외
         $im->readImage($pdf."[".$page."]");
foreach($im은 $Key => $Var)
{
         $Var->setImageFormat('png')
$filename = $path."/".md5($Key.time()).'.png';
If($Var->writeImage($filename) == true)
~                $Return[] = $filename

}  
반환 $반환
}
$path="images";//항상 사용되는 폴더이므로 확인하지 않습니다
$s=pdf2png("test.pdf",$path);
$scount=count($s);
for($i=0;$i<$scount;$i )
{
echo "
페이지 ".($i 1)."

";
}
?>

위의 내용과 비슷한가요? 하지만 항상 실패합니다. readImage 측에 예외가 있습니다. 오류 출력을 확인하세요.

코드 복사 코드는 다음과 같습니다.

PHP 치명적인 오류: 'PostscriptDelegateFailed `test.pdf': 해당 파일이나 디렉터리가 없습니다' 메시지와 함께 포착되지 않은 예외 'ImagickException'

Baidu와 Google을 오랫동안 검색한 끝에 마침내 아이디어가 떠올랐습니다. Postscript 아닌가요? 나는 그것을 찾고 있는 척하고 있다.
이 Postscript는 실제로 GhostScript입니다.
설치 후 실행하면 OK!

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