Подтвердить что ты не робот

Как изменить ориентацию страницы PDF? (Требуется Ghostscript или PostScript)

Учитывая документ PDF, как изменить индивидуальную ориентацию страницы?

Я использую последнюю версию Ghostscript.

4b9b3361

Ответ 1

Зачем вам требовать использования 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/.

Ответ 2

Ничто, кроме -dNORANGEPAGESIZE не сработало идеально для меня.