Linux — конвертировать PDF в изображение с pdftoppm в PHP без записи файлов на диск

Мне нужно конвертировать PDF в PNG в PHP. По соображениям качества мы не хотим использовать Imagemagick, но предпочитаем использовать pdftoppm.

Для производительности мы предпочитаем использовать не файловую систему, а память.

pdftoppm правильно установлен в Ubuntu и работает.

Для другого проекта (html -> pdf) мы используем следующий код:

//input is $html

$descriptorSpec =
[
0 => ['pipe', 'r'],
1 => ['pipe', 'w'],
2 => ['pipe', 'w']
];

$command = 'wkhtmltopdf --quiet  - -';

$process = proc_open($command, $descriptorSpec, $pipes);

fwrite($pipes[0], $html);
fclose($pipes[0]);
$pdf = stream_get_contents($pipes[1]);
$errors = stream_get_contents($pipes[2]);
if ($errors)
{
$errors = ucfirst(strtr($errors, [
'sh: wkhtmltopdf: ' => '',
PHP_EOL => ''
]));
throw new Exception($errors);
}
fclose($pipes[1]);
$return_value = proc_close($process);

//output is $pdf

Это работает отлично!

Но если я использую этот код, чтобы сделать то же самое с pdftoppm, он не работает, что я делаю не так?

//input is $pdf

$descriptorSpec =
[
0 => ['pipe', 'r'],
1 => ['pipe', 'w'],
2 => ['pipe', 'w']
];

$command = 'pdftoppm -png  - -';

$process = proc_open($command, $descriptorSpec, $pipes);

fwrite($pipes[0], $pdf);
fclose($pipes[0]);
$png = stream_get_contents($pipes[1]);
$errors = stream_get_contents($pipes[2]);
if ($errors)
{
$errors = ucfirst(strtr($errors, [
'sh: pdftoppm: ' => '',
PHP_EOL => ''
]));
throw new Exception($errors);
}
fclose($pipes[1]);
$return_value = proc_close($process);

//output is $png

Спасибо заранее за советы и предложения
Извините за мой плохой английский..

0

Решение

Хорошо, исправил это сам!

удалил дефисы.

$command = 'pdftoppm -png ';

Спасибо всем за поддержку !

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]