当前位置:首页 > PHP教程 > php高级应用 > 列表

php将pdf生成png缩略图的实例程序

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-27 09:46:46 浏览: 评论:0 

需要安装imagick及其php扩展,一共有二个函数,都是从网上摘下来的,还没测试,这个方案应该可行,可以简单的仿照在线文档功能,有机会在项目中实践一下.

第一种,代码如下:

  1. /** 
  2. * PDF2PNG    
  3. * @param $pdf  待处理的PDF文件 
  4. * @param $path 待保存的图片路径 
  5. * @param $page 待导出的页面 -1为全部 0为第一页 1为第二页 
  6. * @return      保存好的图片路径和文件名 
  7. */ 
  8.  function pdf2png($pdf,$path,$page=0) 
  9. {   
  10.    if(!is_dir($path)) 
  11.    { 
  12.        mkdir($path,true); 
  13.    } 
  14.    if(!extension_loaded('imagick')) 
  15.    {   
  16.      echo '没有找到imagick!' ; 
  17.      return false; 
  18.    }   
  19.    if(!file_exists($pdf)) 
  20.    {   
  21.       echo '没有找到pdf' ; 
  22.        return false;   
  23.    }   //www.phpfensi.com 
  24.    $im = new Imagick();   
  25.    $im->setResolution(120,120);   //设置图像分辨率 
  26.    $im->setCompressionQuality(80); //压缩比 
  27.    $im->readImage($pdf."[".$page."]"); //设置读取pdf的第一页 
  28.    //$im->thumbnailImage(200, 100, true); // 改变图像的大小 
  29.    $im->scaleImage(200,100,true); //缩放大小图像 
  30.    $filename = $path."/". time().'.png'
  31.    if($im->writeImage($filename) == true) 
  32.    {   
  33.       $Return  = $filename;   
  34.    }   
  35.    return $Return;   
  36. }   
  37. $s = pdf2png('file/1371273225-ceshi_ppt.pdf','images');  
  38. echo '<div align="center"><img src="'.$s.'"></div>';  

第二种,代码如下:

  1. function pdf2png($PDF,$Path){ 
  2.    if(!extension_loaded('imagick')){ 
  3.        return false; 
  4.    } 
  5.    if(!file_exists($PDF)){ 
  6.        return false; 
  7.    } 
  8.    $IM = new imagick(); 
  9.    $IM->setResolution(120,120); 
  10.    $IM->setCompressionQuality(100); 
  11.    $IM->readImage($PDF); 
  12.    foreach ($IM as $Key => $Var){ 
  13.        $Var->setImageFormat('png'); 
  14.        $Filename = $Path.'/'.md5($Key.time()).'.png'
  15.        if($Var->writeImage($Filename) == true){ 
  16.            $Return[] = $Filename
  17.        } //www.phpfensi.com 
  18.    } 
  19.    return $Return
  20. }  

创建一个jpg缩略图并显示出来,代码如下:

  1. <?php 
  2. header('Content-type: image/jpeg'); 
  3. $image = new Imagick('image.jpg'); 
  4. // If 0 is provided as a width or height parameter,// aspect ratio is maintained 
  5. $image->thumbnailImage(100, 0); 
  6. echo $image
  7. ?> 

缩略GIF动画图片,代码如下:

  1. <?php 
  2. /* Create a new imagick object and read in GIF */ 
  3. $im = new Imagick("example.gif"); 
  4. /* Resize all frames */ 
  5. foreach ($im as $frame) { 
  6. /* 50x50 frames */ 
  7. $frame->thumbnailImage(50, 50); 
  8. /* Set the virtual canvas to correct size */ 
  9. $frame->setImagePage(50, 50, 0, 0); 
  10. }/* Notice writeImages instead of writeImage */ 
  11. $im->writeImages("example_small.gif", true); 
  12. ?> 

Tags: php生成png png缩略图程序

分享到: