답변:
당신은 필요 ImageMagick
하고GhostScript
<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
[0]
수단 page 1
.
$im->thumbnailImage(1500, 0);
jpg 이미지를 너비 1500으로 설정하고 배율을 유지합니다. 문서를 참조하십시오
어떤 이유로 든 ImageMagick이없는 사람들은 GhostScript와 함께 GD 기능도 작동합니다. ghostscript 명령을 실행하여 exec()
PDF를 JPG로 변환 하고을 사용하여 결과 파일을 조작하십시오 imagecreatefromjpeg()
.
고스트 스크립트 명령을 실행하십시오.
exec('gs -dSAFER -dBATCH -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -sOutputFile=whatever.jpg input.pdf')
조작하려면 새 자리 표시 자 이미지를 만들고 $newimage = imagecreatetruecolor(...)
현재 이미지를 가져옵니다. $image = imagecreatefromjpeg('whatever.jpg')
을 사용 imagecopyresampled()
하여 크기 또는 다른 내장 imagemagick
명령이 아닌 수를 변경할 수 있습니다.
gs
바이너리 의 전체 경로를 제공해야 할 수도 있습니다 .
something;rm -rf /
어떻게됩니까?
당신은 또한 사용하여 페이지 수를 얻을 수 있습니다
$im->getNumberImages();
그런 다음 루프를 사용하여 모든 페이지의 엄지 손가락을 만들 수 있습니다.
'file.pdf['.$x.']'
PHP 확장명 Imagick을 사용하십시오 . 래스터 출력 이미지의 원하는 크기를 제어하려면 setResolution 기능을 사용하십시오.
<?php
$im = new Imagick();
$im->setResolution(300, 300); //set the resolution of the resulting jpg
$im->readImage('file.pdf[0]'); //[0] for the first page
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
(Paolo Bergantino는 그의 답변을 확장했으며 Luis Melgratti는 그의 의견을 확장했습니다. 이미지를로드하기 전에 해상도를 설정해야합니다.)
Blob에서 PDF를로드하는 경우 마지막 페이지 대신 첫 페이지를 얻는 방법입니다.
$im->readimageblob($blob);
$im->setiteratorindex(0);
imagemagick과 함께 제공되는 'convert'유틸리티를 실행할 수도 있습니다.
exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';
convert
바이너리 의 전체 경로를 제공해야 할 수도 있습니다 .
echo 'image-0.jpg';
문자열을 반환합니다.
나는 PHPlib 의 GhostScript 래퍼 인 PDFlib 의 저자입니다. 이 라이브러리를 사용하는 이점은 이미 테스트되었으며 필요하지 않습니다.ImageMagic
항상 PDF에 GhostScript
비해 명령이 더 빠르 ImageMagic
므로 GhostScript 래퍼 또는 순수한 GhostScript 명령을 사용해야합니다.
$pdflib = new ImalH\PDFLib\PDFLib();
$pdflib->setPdfPath($pdf_file_path);
$pdflib->setOutputPath($folder_path_for_images);
$pdflib->convert();
설치 완료했습니다! 작동했습니다!
Windows에서 imagemagick 기본 설치를 할 수 있습니다 .
에서 php (local)
사용하는 호출 exec(<command line>)
예 :
<?php
$pdf = "filename.pdf";
$info = pathinfo($pdf);
$file_name = basename($pdf,'.'.$info['extension']);
echo $file_name;
$pdf = "filename.pdf[0]";
exec("convert $pdf convert-img/$file_name.jpg");
?>
게다가, 당신은 PHP Imagick 클래스class imagick
에서 사용할 수 있습니다
모두 도와 주셔서 감사합니다!
다르게 생각하면 다음 라이브러리를 사용하여 javascript를 사용하여 pdf를 이미지로 변환 할 수 있습니다
다음은 몇 가지 프로젝트에서 작성하고 사용한 간단한 클래스입니다. imagick
각 페이지를 디스크에 쓰는 것만 랩핑 하고 처리합니다. 누구든지 여전히 쉬운 방법을 찾고 있다면 이 링크 가 도움 이 될 수 있습니다.
.jpg
확장자를 갖기를 원합니다 . .htaccess AddHandler 메서드를 시도했지만 작동하지 않았습니다.