使用php创建PDF或PPT文件的缩略图

时间:2014-02-21 13:05:27

标签: php pdf thumbnails powerpoint imagick

我想制作用户上传的pdf或ppt缩略图 我试过了

$file = 'Digital Signage.pptx';    
$cache = $_SERVER['DOCUMENT_ROOT'].'/cache/';    
$ext = "jpg";//just the extension    
$dest = $cache.$file.'.'.$ext;    
if (file_exists($dest)){
    $img = new imagick();
    $img->readImage($dest);
    header( "Content-Type: image/jpg" );
    echo $img;
    exit;    
 } else {    
    $img = new imagick($_SERVER['DOCUMENT_ROOT'].'/'.$file.'[0]');
    $img->setImageFormat($ext);    
    $width = $img->getImageheight();
    //$img->cropImage($width, $width, 0, 0);
    $img->scaleImage(105, 149, true);    
    $img->writeImage($dest);    
    header( "Content-Type: image/jpg" );
    echo $img;
    exit;
}

这需要想象力安装在服务器上,我的主机不允许我,因为我在共享主机上有任何其他方法来执行此操作

我也可以使用exec命令,因为它不安全,我不会使用这个

3 个答案:

答案 0 :(得分:0)

使用imagemagick还有其他选择。也许使用PHPGD来创建缩略图。该功能称为imagecopyresized

调整大小如何工作的示例代码:

<?php 
 // The file you are resizing 
 $file = 'your.jpg'; 

 //This will set our output to 45% of the original size 
 $size = 0.45; 

 // This sets it to a .jpg, but you can change this to png or gif 
 header('Content-type: image/jpeg'); 

 // Setting the resize parameters
 list($width, $height) = getimagesize($file); 
 $modwidth = $width * $size; 
 $modheight = $height * $size; 

 // Creating the Canvas 
 $tn= imagecreatetruecolor($modwidth, $modheight); 
 $source = imagecreatefromjpeg($file); 

 // Resizing our image to fit the canvas 
 imagecopyresized($tn, $source, 0, 0, 0, 0, $modwidth, $modheight, $width, $height); 

 // Outputs a jpg image, you could change this to gif or png if needed 
 imagejpeg($tn); 
 ?> 

更新:此外,为了从PDF创建图像,然后尝试使用imagecreatefromstring函数,然后根据图像结果进行调整。

答案 1 :(得分:0)

我知道我来不及回答这个问题但是,这可能对其他人有帮助。

除了使用imagick或ghost脚本(命令行工具)之外,没有办法执行上述任务,所以最后我找到了一种方法,在另一个专用服务器上启用imagick扩展,然后在那里生成图像然后下载它们位于托管我的网站的服务器上file_get_content()

答案 2 :(得分:0)

这个问题迟到了,但您可以考虑使用其中一种在线转化服务。他们有API,您可以上传PPTX并下载每张幻灯片的png。大部分都不是免费的,但它可能比滚动自己更容易进行转换。

在我对这个问题的研究中,我遇到了http://www.zamzar.com/https://cloudconvert.com/。我还没有使用过,所以我无法报告转换的质量。