Почему вы требуете использования Ghostscript? Будет ли приемлемым использовать другой инструмент с открытым исходным кодом, работающий в командной строке, например pdftk
?
В любом случае, вот как вращать страницы с помощью Ghostscript. Однако это может не сработать для ваших намерений, поскольку вы не можете заставить определенную ориентацию только для отдельной страницы. Он опирается на внутренний алгоритм Ghostscript, который пытается автоматически поворачивать страницы в зависимости от потока текста внутри PDF-файлов:
* -dAutoRotatePages=/None
- сохраняет ориентацию каждой страницы;
* -dAutoRotatePages=/All
- поворачивает все страницы (или ни одной) в зависимости от вида «решения большинства»;
* -dAutoRotatePages=/PageByPage
- автоматически поворачивает страницы по отдельности.
Добавьте один из них в командную строку Ghostscript, которую вы используете.
Если на странице есть текст нет (или если для автоматического поворота страницы установлено значение /None
), то Ghostscript использует настройки setpagedevice
. Вы можете передать такие параметры setpagedevice
в командной строке Ghostscript, используя переключатель -c
, например:
* -c "<</Orientation 3>> setpagedevice"
- устанавливает альбомную ориентацию;
* -c "<</Orientation 0>> setpagedevice"
- устанавливает портрет ориентация;
* -c "<</Orientation 2>> setpagedevice"
- устанавливает вверх ногами ориентация;
* -c "<</Orientation 1>> setpagedevice"
- устанавливает морской пейзаж ориентацию.
Возможно, вам нужно установить ориентацию для каждой страницы при извлечении страниц. Я не думаю, что это сработает при объединении их обратно в единый документ (я никогда не проверял это).
В любом случае, я бы порекомендовал взглянуть и на pdftk
(который также доступен для Windows). Это инструмент командной строки, который может вращать страницы из PDF-файлов и многое другое. Проще в использовании, чем Ghostscript для вашей заявленной цели, и гораздо быстрее. В частности, он может вращать отдельные страницы в документе PDF, оставляя другие страницы нетронутыми. Пример:
pdftk A=in.pdf \
cat A1-3 A4west A5-end \
output out.pdf
Эта команда выведет страницы 1, 2 и 3, а также страницы 5, 6, ... последние не повернутыми, но повернет страницу 4 на 90 градусов (поэтому заголовок страницы обращен к «западу»). (Однако учтите, что эта команда может привести к непредвиденным результатам в зависимости от исходной ориентации ваших входных страниц: необходимо проверить ориентацию всех страниц входного PDF, введя pdfinfo -l 1000 input.pdf
, а затем проверьте значение вывода rot
: если вы видите значения, отличные от 0
, например 90
, 180
и 270
, эти страницы уже предварительно повернуты ...)
Подробнее см. Здесь: http://www.accesspdf.com/pdftk/.