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


52

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

З командного рядка, як обертати PDF-файл на 90 градусів?

Я спробував шукати і знайшов купу рішень, але у мене виникли проблеми з пошуком схожого на авторитетне рішення [1], що використовує стабільний / надійний інструмент Linux / unix.


виноска [1]

Наприклад, ось вибірка деяких випадкових рішень, які я знайшов:

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

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

Як ці випадкові рішення ? Як ви розчарувались у кожному з них? Ви насправді спробували їх?
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
На сторінці "man" 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 Що ви маєте на увазі під "масштабуванням, достатньо малим, щоб відповідати початковій орієнтації"? Я думаю, у вас зараз проблеми з переглядачем PDF, а не з обертанням сторінок.
користувач163859

Моїм оригінальним PDF була сторінка розміром листа, обернена на 90 градусів, тому висота сторінки була зменшена з 11 "до 8,5". Не змінилося після виправлення обертання. Виявив це правдою для багатьох онлайн-інструментів. Зрештою, це не може бути проблемою з конверсією. Я знайшов варіант масштабування під час перегляду / друку обертового PDF, і це виправило. Вибачте, я настільки розчарувався в той момент, що я просто надрукував і рухався далі і не відзначив точні кроки, які я вжив.
ДжонМудд

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

42

Я просто натрапив на цю нитку і побачив, що ще немає жодного хорошого рішення. Я виявив, що (принаймні на 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


12

pdftk більше не доступний на Ubuntu 18.04 через деякі застарілі залежності.

Найкращим рішенням, який я знайшов, був (графічний) інструмент pdfshuffler .

Встановіть і запустіть його. Відкрийте потрібний pdf-файл, клацніть правою кнопкою миші на сторінці та оберніть кожен окремо. Він також поєднує файли pdfs та деякі інші приємні речі.

sudo apt install pdfshuffler

1
Чи потрібно обертати кожну сторінку вручну? Це розірвання угоди. Мені потрібно обертати PDF-книгу на сотні сторінок, щоб її краще переглянути (більше) на Kindle. ОНОВЛЕННЯ : Просто спробував, ні, ви можете Ctrl-A вибрати всі сторінки, а потім обернути їх усі в один крок.
Геррі Луфванса

12

У Linux Mint 18.3 (я вірю і в інших дистрибутивах Debian) ви маєте простий інструмент командного рядка з назвою QPDF.

Ви можете використовувати: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

З документації :

- повернути = [+ | -] кут [: діапазон сторінок]

Застосувати обертання до вказаних сторінок. Частина діапазону сторінок значення параметра має той самий формат, що і діапазони сторінок у розділі 3.5, "Параметри вибору сторінки". Якщо діапазон сторінок опущений, обертання застосовується до всіх сторінок. Кутова частина параметра може бути або 90, 180, або 270. Якщо їй передує + або -, кут додається або віднімається від початкових обертів зазначених сторінок. Інакше обертання сторінок встановлюється на точне значення. Наприклад, команда qpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8повертає сторінки на 2, 4 та 6 90 градусів за годинниковою стрілкою від їх початкового обертання та змушує обертати сторінки від 7 до 9 до 180 градусів незалежно від їх початкового обертання, а команда qpdf in.pdf out.pdf --rotate=180повертає всі сторінки на 180 градусів.


3
Визначення діапазону сторінок здається обов'язковим, принаймні в моїй поточній версії qpdf (8.0.2).
Xtreme Biker

6

Щоб покращити вихідну роздільну здатність (за замовчуванням - 72 DPI), я отримав хороші результати з:

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

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


Додавання щільності 300, 600 і навіть 1200 мало лише незначне поліпшення якості продукції.
ДжонМудд

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.