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

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

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

20
задан Kurt Pfeifle 18 June 2015 в 15:47
поделиться

1 ответ

Почему вам требуется использование Ghostscript? Можно ли использовать другой бесплатный инструмент с открытым исходным кодом, работающий в командной строке, например pdftk ?

В любом случае, вот как вращать страницы с помощью Ghostscript. Однако это может не сработать для ваших целей, потому что вы не можете принудительно установить определенную ориентацию только для отдельной страницы.Он основан на внутреннем алгоритме Ghostscript, который пытается автоматически переворачивать страницы в зависимости от потока текста внутри PDF-файлов:
* -dAutoRotatePages = / None - сохраняет ориентацию каждой страницы;
* -dAutoRotatePages = / All - вращает все страницы (или ни одну) в зависимости от типа «решения большинства»;
* -dAutoRotatePages = / PageByPage - автоповорот страниц по отдельности.

Добавьте один из них в используемую вами командную строку Ghostscript.

Если на странице нет текста (или если для автоматического поворота страницы установлено значение / Нет ), то 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/ .

40
ответ дан 29 November 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: