PHP и Ghostscript для преобразования многостраничного PDF в один JPG - PullRequest
1 голос
/ 27 января 2012

Для своего веб-сайта я использую небольшой скрипт для преобразования PDF в JPG.

exec('gs -dSAFER -dBATCH -dNOPAUSE -r150 -dJPEGQ=60 -sDEVICE=jpeg -dTextAlphaBits=4 -sOutputFile= '.$file_name.' '.$pdf);

Я хочу, чтобы, когда у меня есть многостраничный PDF, конвертировал его в один JPG (многостраничный в одном JPG).1004 *

Кто-нибудь знает, как это сделать?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 29 января 2012

Если я вас правильно понимаю, вы хотите добиться этого:

Страницы ввода PDF:

+---+  +---+  +---+ 
| a |  | b |  | c |
|   |  |   |  |   |
+---+  +---+  +---+ ...

(3 или более отдельных страницы)

Вывод JPEG:

+---+
| a |
|   |
+...+
| b |
|   |
+...+
| c |
|   |
+...+
|   |
~~~~~

или это:

+---+---+---+~~ 
| a . b . c |
|   .   .   |
+---+---+---+~~ ...

или это:

+---+---+-~
| a . b . 
|   .   .
+...+...+~
| c .   
|   .   
+---+~~

или какой-либо другой вариант одной страницы JPEG ...

Ghostscript не может сделать это за один шаг.Тем не менее, вы можете достичь этого в два этапа:

  1. Используйте Ghostscript для создания макета PDF-файла n-up.
  2. (Или используйте другое программное обеспечение для создания-Ups из вашего PDF.)
  3. Используйте Ghostscript для преобразования n-up PDF в JPEG.

1.Использование Ghostscript для создания PDF-страниц n-Up

Я не собираюсь давать подробные инструкции, как это сделать (это также зависит от ваших точных требований к выводу.

Однако здесь есть две ссылкиведет к SuperUser.com, который объясняет процедуру более подробно, и поможет вам настроить ваши собственные шаги:

2. Использование других инструментов для создания PDF-файлов n-Up

  • PDFJam включает утилиту pdfnup
  • PoDoFo включает утилиту podofoimpose

3. Использование Ghostscript для конвертации вашего нового PDFв JPEG

Кажется, вы уже знаете, как это сделать ...

1 голос
/ 27 января 2012

Я не помню, чтобы JPEG разрешал несколько изображений в одном файле.Если это так, Ghostscript, безусловно, не делает этого, поэтому единственный способ сделать это (с помощью Ghostscript) - написать собственное устройство.

Вы можете создать многостраничный файл TIFF, используя вместо этого сжатие JPEG,но Ghostscript и этого не поддерживает, но если вы все равно пишете свое устройство .....

...