Answers:
<?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的用户,GD函数也可以与GhostScript一起使用。运行ghostscript命令,exec()
将PDF转换为JPG,并使用操作结果文件imagecreatefromjpeg()
。
运行ghostscript命令:
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随附的“转换”实用程序。
exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';
convert
二进制文件的完整路径。
echo 'image-0.jpg';
返回一个字符串。
我是PDFlib的作者,它是 php 的GhostScript包装器,使用此库的好处是,它已经过测试,不需要ImageMagic
总是GhostScript
命令比ImageMagic
pdf 更快,因此您应该使用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");
?>
此外,您可能会class imagick
在PHP Imagick类中使用
谢谢大家的帮助!
换种方式,您可以使用以下库使用javascript将pdf转换为图像
这是我编写并在几个项目中使用过的简单类。它只是包装imagick
并处理将每个页面写出到磁盘。如果有人仍在寻找简便的方法来执行此操作,则此链接可能会有所帮助。
.jpg
扩展名。我尝试了.htaccess AddHandler方法,但它不起作用。