Как изменить ориентацию страницы PDF? (Необходимо решение Ghostscript или PostScript)

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

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


person StackOverflowNewbie    schedule 22.06.2010    source источник


Ответы (2)


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

person Kurt Pfeifle    schedule 24.06.2010
comment
Привет, пипитас, я пытаюсь это сделать, но это не работает: gs -sDEVICE=pdfwrite -sOutputFile="page2rot.pdf" -dNOPAUSE -dEPSCrop -c "<</Orientation 0>> setpagedevice" -f "page2.pdf" -c quit вы не видите в этом проблемы? - person Pureferret; 19.04.2012
comment
@Pureferret: без доступа к вашему входному PDF-файлу page2.pdf я не могу смотреть на проблему .... - person Kurt Pfeifle; 19.04.2012
comment
Я имею в виду «изменит ли что-то конкретный файл .pdf» - person Pureferret; 20.04.2012
comment
@KurtPfeifle Я начал использовать ghostscript для разных целей после того, как увидел зависание pdftk на некоторых входных файлах. - person Andy; 08.11.2015
comment
@mirabilos: Хорошо, я добавил пример. (Теперь этот ответ заслуживает вашего одобрения? :) Если вы посмотрите на другие мои ответы, обычно я добавляю примеры ко всем инструментам командной строки, которые я рекомендую... - person Kurt Pfeifle; 14.12.2015
comment
Кто-нибудь из вас знает, как вернуться на предыдущую страницу во время просмотра? - person AntiqTech; 03.10.2019
comment
раньше была бесплатной функцией - person thistleknot; 02.02.2021

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

person name    schedule 17.04.2019
comment
вы должны уточнить ответ! - person Hichem BOUSSETTA; 18.04.2019