Я написал код для преобразования 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/>');
}
Любая помощь будет оценена. Заранее спасибо :).
Как вы думаете, почему DEVICEWIDTHPOINTS и DEVICEHEIGHTPOINTS являются недопустимыми аргументами?
Вы не установили -dFIXEDMEDIA, поэтому начальные значения могут быть переопределены медиа-запросами от ввода. Вы, вероятно, также захотите установить -dPDFFitPage, чтобы масштабировать ввод PDF, чтобы он соответствовал заявленному размеру носителя, если вы этого не сделаете, то вы просто получите нижний левый угол отрисовки ввода.
Не устанавливайте -r при использовании этого параметра, необходимо пересчитать разрешение, чтобы масштабировать ввод в запрошенный носитель фиксированного размера. (Обратите внимание, что вы запросили носитель в пунктах, 1/72 дюйма)
Пожалуйста, не используйте -dUSECIEColor, это ужасный взлом из мира PostScript. Если вы точно не знаете, что делаете, это приведет к ухудшению управления цветом.
Других решений пока нет …