Можно ли установить ориентацию страницы в альбомной ориентации с помощью ps2pdf в Windows?
2 ответа
ps2pdf
- довольно ограниченная утилита. Это всего лишь небольшой командный файл (в Unix/Linux: сценарий оболочки), который создает и вызывает довольно сложную командную строку Ghostscript, а сам использует очень простой синтаксис командной строки.
Если вам нужна вся мощь Ghostscript, вам лучше напрямую вызвать gswin32c.exe.
Хорошо, вот как вращать страницы с 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"
- устанавливает ориентацию морского пейзажа .
Вам требуется использование pstopdf
или Ghostscript? Было бы приемлемо использовать другой инструмент с открытым исходным кодом, работающий в командной строке, например pdftk.exe
?
В любом случае, я бы порекомендовал посмотреть на pdftk
(который также доступен для Windows). Это инструмент командной строки, который может вращать страницы из PDF-файлов и многое другое. Проще в использовании, чем Ghostscript для вашей заявленной цели, и гораздо быстрее. В частности, он может вращать отдельные страницы в документе PDF, оставляя другие страницы нетронутыми. Подробности смотрите здесь: http://www.accesspdf.com/pdftk/ .
См. Настройка ориентации страницы, где этот довольно запутанный текст говорит, что это невозможно:
По умолчанию Ghostscript определяет ориентацию просмотра страницы на основе доминирующей ориентации текста на странице. Иногда, когда страница имеет текст в нескольких ориентациях или вообще не имеет текста, может быть выбрана неправильная ориентация.
Параметр Acrobat Distiller AutoRotatePages управляет алгоритмом автоматического выбора ориентации. В Ghostscript, кроме входного потока, параметры Distiller могут быть заданы в качестве аргументов командной строки. Например: -dAutoRotatePages =/None или /All или /PageByPage.
Если на странице нет текста или для автоматического поворота страницы установлено значение / Нет, используется значение ориентации из setpagedevice. Допустимые значения: 0 (портрет), 3 (пейзаж), 2 (вверх ногами) и 1 (морской пейзаж). Ориентация может быть установлена из командной строки как -c "<> setpagedevice" с использованием Ghostscript напрямую, но не может быть установлена в ps2pdf. См. Ограничения ниже.
Ghostscript передает значения ориентации из комментариев DSC в драйвер pdfwrite, но там они фактически игнорируются. Похоже, что это соответствует поведению Distiller 5.