Учитывая документ PDF, как мне изменить ориентацию отдельной страницы?
Я использую последнюю версию Ghostscript.
Учитывая документ PDF, как мне изменить ориентацию отдельной страницы?
Я использую последнюю версию Ghostscript.
Почему вам требуется использование 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/ .
gs -sDEVICE=pdfwrite -sOutputFile="page2rot.pdf" -dNOPAUSE -dEPSCrop -c "<</Orientation 0>> setpagedevice" -f "page2.pdf" -c quit
вы не видите в этом проблемы?
- person Pureferret; 19.04.2012
Ничего, кроме -dNORANGEPAGESIZE, отлично сработало для меня.