将pdf转换为jpg,将jpeg转换为缩略图

时间:2014-09-24 08:41:16

标签: php image ghostscript

我已经编写了将pdf转换为jpeg并且工作正常的代码但是我应该在exec()中创建缩略图的选项;(用于宽度和高度目的)。我在这里。我试过了 -dDEVICEWIDTHPOINTS = 100 -dDEVICEHEIGHTPOINTS = 200选项,但似乎无效的参数。

以下是我的代码:

 //include 'thumbcreator.php';
 ini_set('display_errors', 1);
 $pdf='example.pdf';
 $quality=90;
 $res='300x300';
 $exportName="pdf_export_" . time();
 $exportPath=realpath(dirname(__FILE__))."/$exportName/fullres/%03d.jpg";
 $exportPaththumb=realpath(dirname(__FILE__))."/$exportName/fullresthumb/%03d.jpg";

 mkdir(realpath(dirname(__FILE__))."/$exportName");
 mkdir(realpath(dirname(__FILE__))."/$exportName/fullres");
 mkdir(realpath(dirname(__FILE__))."/$exportName/fullresthumb");
 set_time_limit(900);
 exec("'gs' '-dNOPAUSE' '-sDEVICE=jpeg' '-dUseCIEColor' '-dTextAlphaBits=4' '-dGraphicsAlphaBits=4' '-o$exportPath' '-r$res' '-dJPEGQ=$quality' '$pdf'",$output);
 exec("'gs' '-dNOPAUSE' '-sDEVICE=jpeg' '-dUseCIEColor' '-dTextAlphaBits=4' '-dGraphicsAlphaBits=4','-dDEVICEWIDTHPOINTS=100 -dDEVICEHEIGHTPOINTS=200' '-o$exportPaththumb' '-r$res' '-dJPEGQ=$quality' '$pdf'",$output);

 for($i=0;$i<count($output);$i++){
             echo($output[$i] .'<br/>');
 }

任何帮助将不胜感激。在此先感谢:)。

1 个答案:

答案 0 :(得分:0)

为什么您认为DEVICEWIDTHPOINTS和DEVICEHEIGHTPOINTS是无效的参数?

您尚未设置-dFIXEDMEDIA,因此可以通过输入的媒体请求覆盖初始值。你可能还想设置-dPDFFitPage以缩放PDF输入以适应声明的媒体大小,如果你不这样做,那么你只需要渲染输入的左下角。

使用时不要设置-r,必须重新计算分辨率才能将输入缩放到您请求的固定大小的介质中。 (请注意,您已要求介质分为1/72英寸)

请不要使用-dUSECIEColor,这是一个来自PostScript世界的可怕黑客。除非你确切知道自己在做什么,否则会导致更糟糕的色彩管理。