Командная строка: как вы поворачиваете PDF-файл на 90 градусов?


54

Когда я сканирую документы в альбомной ориентации, выходные файлы PDF имеют книжную ориентацию, поэтому все программы просмотра PDF отображают отсканированные документы в книжной ориентации.

Из командной строки, как вы поворачиваете PDF-файл на 90 градусов?

Я попытался выполнить поиск и нашел кучу решений, но мне было трудно найти то, что выглядело как авторитетное решение [1], в котором используется стабильный / надежный инструмент linux / unix.


сноска [1]

Например, вот выборка некоторых случайных решений, которые я нашел:

  • «Просто используйте Adobe Acrobat Pro, чтобы повернуть файл, а затем сохранить файл»
  • "использовать pdfjam"
  • "использовать pdftk"
  • "использовать $ {PROGRAM_NAME} из Poppler"
  • «использовать конвертирование Imagemagick» - но тогда все комментарии были очень негативными и утверждали «качество изображения разрушено»
  • «открыть файл в средстве просмотра PDF, затем повернуть, а затем распечатать на принтере PDF, таком как CUTEPDF, PDFPRINTER и т. д.»
  • «используйте $ {PROGRAM_NAME}», затем я искал «$ {PROGRAM_NAME}», и есть что-то вроде «Fedora удалила $ {PROGRAM_NAME} из-за проблем с лицензированием»

5
Не существует «авторских решений», но вы должны помнить, какой метод используют различные решения: прямое манипулирование структурой PDF (pdftk, Adobe Acrobat и другие программы), преобразование в изображение, а затем преобразование обратно в PDF (например, Преобразование Imagemagick, печать на принтере PDF и т. Д.). Последнее явно плохая идея.
Диркт

Как эти случайные решения ? Как вы были разочарованы каждым из них? Вы действительно пробовали их?
simlev

Ответы:


48

Просто используйте pdftk.

  1. Для вращения по часовой стрелке:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. Для вращения против часовой стрелки:

    pdftk input.pdf cat 1-endwest output output.pdf
    

По поводу установки pdftk на Fedora я нашел эту ссылку .


4
На странице руководства pdftk представлены дополнительные параметры вращения:The page rotation setting can cause pdftk to rotate pages and documents. Each option sets the page rotation as follows (in degrees): north: 0, east: 90, south: 180, west: 270, left: -90, right: +90, down: +180. left, right, and down make relative adjustments to a page's rotation.
Tapper

Вывод поворачивается, но все еще масштабируется достаточно маленьким, чтобы соответствовать исходной ориентации. Не полезно.
JohnMudd

@JohnMudd Что вы подразумеваете под "достаточно малым, чтобы соответствовать исходной ориентации"? Полагаю, у вас сейчас есть проблема с программой просмотра PDF, а не с вращением страниц.
user163859

Мой оригинальный PDF был страницей размером с букву, повернутой на 90 градусов, поэтому высота страницы была уменьшена с 11 "до 8,5". Не изменился после исправления вращения. Нашел это, чтобы быть правдой со многими онлайн инструментами. Не может быть проблемой с преобразованием в конце концов. Я нашел параметр масштабирования при просмотре / печати повернутого PDF, и это исправило его. Извините, я был так расстроен в тот момент, что просто напечатал и пошел дальше и не заметил точных шагов, которые я предпринял.
JohnMudd

1
pdftkудаляется в Ubuntu 18.04 и выше. Сама Ubuntu предлагает установить оснастку, которая работает только в простых ситуациях (она не нашла мои файлы, возможно, потому что они были вне моего домашнего каталога?). Я переехал в pdfjam ... --angle 270....
Стефан Гурихон

43

Я просто наткнулся на эту ветку и увидел, что пока не найдено хорошего решения. Я обнаружил, что (по крайней мере, в Debian и Ubuntu) pdfjam поставляется со следующими командами:

pdf90 input.pdf
pdf180 input.pdf
pdf270 input.pdf

Я думаю, что это самый простой и быстрый подход. Это скрипты, использующие команду pdfjam правильно. Btw. pdfjam - это виртуальный пакет, который поставляется сtexlive-extra-utils


4
Похоже, 90 идет против часовой стрелки, а 270 идет по часовой стрелке - возможно, вы должны упомянуть об этом.
Аарон Холл

2
pdf90 действительно тонкая оболочка. Тем не менее это форсирует конвенцию суффиксов. Так что я использовал pdfjam напрямую:pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
Стефан Гурихон

16

Вы можете использовать ImageMagick: displayили convert- например, чтобы повернуть его по часовой стрелке, используйте

convert -rotate 90 <file>.pdf <rotated-file>.pdf

Используйте -90 для вращения против часовой стрелки.

NB только использовать этот метод , когда исходное изображение представляет собой растровый (например , производится путем сканирования). Если исходное изображение не является растровым изображением, этот метод преобразует его в одно и качество будет ухудшаться. В последнем случае, пожалуйста, используйте один из методов в других ответах.


11
Сначала будет преобразован текст PDF в изображение, поэтому размер увеличится, а качество снизится (если только это не было только сканирование).
авив

1
Да, действительно, это полезное напоминание, но в этом случае ОП заявляет, что он сканирует документы.
NickD

12
Результат pdf очень низкого качества.
Иван Романов

Этот метод хорош только для отсканированных оригиналов: они уже являются растровыми изображениями. Для обычных PDF-файлов см. Комментарий @ aviv выше и, возможно, используйте метод в другом ответе.
NickD


13

В Linux Mint 18.3 (я верю и в другие производные от Debian) у вас есть простой инструмент командной строки с именем QPDF.

Вы можете использовать: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

Из документации :

--rotate = [+ | -] Угол [: страница-диапазон]

Применить вращение к указанным страницам. Часть диапазона значений значения параметра имеет тот же формат, что и диапазоны страниц в Разделе 3.5, «Параметры выбора страницы». Если диапазон страниц не указан, поворот применяется ко всем страницам. Угловая часть параметра может быть либо 90, 180, либо 270. Если ей предшествует + или -, угол добавляется или вычитается из исходного поворота указанных страниц. В противном случае вращения страниц устанавливаются на точное значение. Например, команда qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8будет поворачивать страницы 2, 4 и 6 на 90 градусов по часовой стрелке от их исходного поворота и принудительно qpdf in.pdf out.pdf --rotate=180поворачивать страницы с 7 по 9 на 180 градусов независимо от их первоначального поворота, а команда будет поворачивать все страницы на 180 градусов.


3
Указание диапазона страниц кажется обязательным, по крайней мере, в моей текущей версии qpdf (8.0.2).
экстремальный байкер

По крайней мере, похоже, что это не так (9.0.2): qpdf in.pdf out.pdf --rotate==-90хорошо работает для всех страниц.
iNyar

12

pdftk больше не доступен в Ubuntu 18.04 из-за некоторых устаревших зависимостей.

Лучшим решением, которое я нашел, был (графический) инструмент pdfshuffler .

Установите и запустите его. Откройте нужный файл PDF, щелкните правой кнопкой мыши на странице и поверните каждый файл по отдельности. Он также сопоставляет PDF-файлы и некоторые другие приятные вещи.

sudo apt install pdfshuffler

1
Нужно ли поворачивать каждую страницу вручную? Это нарушает условия сделки. Мне нужно повернуть PDF-книгу длиной в сотню страниц, чтобы лучше рассмотреть ее на Kindle. ОБНОВЛЕНИЕ : только что попробовал, нет, вы можете Ctrl-A, чтобы выбрать все страницы, а затем повернуть их все за один шаг.
Джерри Lufwansa

6

Чтобы улучшить выходное разрешение (по умолчанию 72 DPI), я получил хорошие результаты с:

convert -rotate -90 -density 200 input.pdf output.pdf

Это было для .pdf отсканированного документа. Я обнаружил, что -density 300качество несколько снизилось по сравнению с -density 200.


Добавление плотности 300, 600 и даже 1200 привело к незначительному улучшению качества продукции.
JohnMudd

1

Хотя у него есть свои ограничения, я довольно часто использую PDFedit, особенно для ротации сканирований PDF. Хотя преобразование ImageMagick (с использованием довольно высоких значений плотности) обеспечивает довольно хорошее качество, оно также увеличивает размер файла (оригинал: 155 КБ, повернутая на 180 ° копия: 1,2 МБ). PDFedit вращает одно и то же изображение с неизменным качеством без заметного изменения размера файла.


звучит очень многообещающе! я также заметил проблему с резким изменением размера файла, на который вы ссылаетесь.
Тревор Бойд Смит

0

Я использую эту команду для автоматического поворота PDF-файлов, чтобы они были в вертикальном положении, если они не были в вертикальном положении:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/All -sOutputFile="$outputFile" "$file"

Это имело нулевой эффект.
Colin 't Hart

@ Команда Colin'tHart My только восстанавливает документ , чтобы стать вертикально вниз , если он не был в вертикальном положении , в первую очередь, чтобы заставить использовать вращение pdf90или pdf180или pdf270наоборот, увидеть этот ответ
SebMa
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.