Pao*_*ino 222
<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
Run Code Online (Sandbox Code Playgroud)
的[0]
手段page 1
.
And*_*rew 33
对于那些因任何原因没有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')
Run Code Online (Sandbox Code Playgroud)
要进行操作,请创建新的占位符图像$newimage = imagecreatetruecolor(...)
,然后引入当前图像.$image = imagecreatefromjpeg('whatever.jpg')
,然后您可以使用imagecopyresampled()
更改大小或任何数量的其他内置非imagemagick
命令
Jas*_*son 31
您还可以使用获取页数
$im->getNumberImages();
Run Code Online (Sandbox Code Playgroud)
然后你可以使用循环创建所有页面的拇指,例如.
'file.pdf['.$x.']'
Run Code Online (Sandbox Code Playgroud)
Seb*_*ian 15
使用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;
?>
Run Code Online (Sandbox Code Playgroud)
(Paolo Bergantino的答案和Luis Melgratti的评论.你需要在加载图像之前设置分辨率.)
jrj*_*son 11
如果您从blob加载PDF,这就是您获取第一页而不是最后一页的方式:
$im->readimageblob($blob);
$im->setiteratorindex(0);
Run Code Online (Sandbox Code Playgroud)
您还可以尝试执行imagemagick附带的'convert'实用程序.
exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';
Run Code Online (Sandbox Code Playgroud)
我是PDFlib的作者,它是php 的GhostScript 包装器,使用这个库的优点是,它已经经过测试并且不需要ImageMagic
始终GhostScript
命令比 pdf 更快ImageMagic
,因此您应该选择 GhostScript 包装器或纯 GhostScript 命令
$pdflib = new ImalH\PDFLib\PDFLib();
$pdflib->setPdfPath($pdf_file_path);
$pdflib->setOutputPath($folder_path_for_images);
$pdflib->convert();
Run Code Online (Sandbox Code Playgroud)
以不同的方式思考,您可以使用以下库使用 javascript 将 pdf 转换为图像
http://usefulangle.com/post/24/pdf-to-jpeg-png-with-pdfjs