Инструмент командной строки для обрезки PDF-файлов

Я ищу инструмент командной строки с открытым исходным кодом для обрезки PDF-файла точно так же, как мы можем это сделать в Adobe Acrobat Pro. Я пробовал PdfTk, ImageMagick, pyPdf и GhostScript — все пока безуспешно.

Я бы посоветовал вам взглянуть на PDFcrop.

Если вы хотите обрезать pdf-файл с левым, верхним, правым и нижним полями в 5, 10, 20 и 30 пт (точек), затем выполните

pdfcrop --margins '5 10 20 30' input.pdf output.pdf

в терминале. Чтобы на самом деле что-то обрезать, используйте отрицательные значения в аргументе для обрезки. Например,

pdfcrop --margins '-50 -50 -50 -50' input.pdf output.pdf

обрезает 50 пунктов слева, сверху, справа, снизу (в таком порядке).

Если вы запустите только команду pdfcrop input, он выведет файл с названием ввод-обрезка.pdf с нулевыми полями. Я нахожу это очень удобным при включении иллюстраций в формате pdf в документы.

Обрезка нескольких файлов

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

Создайте новый пустой файл и вызовите его something.sh. Откройте его с помощью текстового редактора и вставьте следующее:

#!/bin/bashfor FILE in ./*.pdf; do  pdfcrop "${FILE}"done

Сохраните его и закройте. Затем щелкните правой кнопкой мыши файл, перейдите к >Права доступа к свойствам и проверьте поле Разрешить выполнение файла как программы. Теперь закройте диалоговое окно. Запустите скрипт, дважды щелкнув по нему и выбрав Запуск в терминале. И новая обрезанная версия всех PDF-файлов с нулевыми полями с суффиксом - урожай теперь он будет напечатан в папке. Если вам нужны поля или другие вещи, вы, конечно, можете просто открыть скрипт и добавить аргументы после pdfcrop.

Спасибо за Rasmus, вы можете установить pdfcrop из пакета texlive-extra-utils:

sudo apt-get install texlive-extra-utils

Затем обрезайте PDF-файлы, используя команду обрезки pdf, как:

pdfcrop input.pdf output.pdf

использовать --help чтобы увидеть более удивительные параметры, такие как --margins

pdfcrop --margins 5 input.pdf output.pdf

который обрезает pdf-файл на 5 п.п. с каждой стороны страницы

Вы также можете обрезать PDF-файлы, просто используя Ghostscript. Я написал небольшой сценарий, чтобы упростить процесс (вдохновленный этот ответ):

#!/bin/bashif [ $# -lt 5 ]then  echo "Usage: `basename $0` <pdf-file> <x_min> <x_max> <y_min> <y_max>"  echo "Notes:"  echo " - all coordinates are absolute; no calculation of width/height necessary"  echo " - use 'gv' to determine the coordinates"  exit 65fifile="$1"xmin="$2"xmax="$3"ymin="$4"ymax="$5"base="${file%.*}"outfile="${base}_cropped.pdf"echo "writing to: $outfile"gs \  -o $outfile \  -sDEVICE=pdfwrite \  -c "[/CropBox [$xmin $ymin $xmax $ymax] /PAGES pdfmark" \  -f $file

Для того, чтобы определить координаты для обрезки, я использую gv, который выводит координаты курсора мыши, используя те же единицы измерения, что и Ghostscript. Например, здесь я определяю минимальные координаты для x / y (значения в верхнем левом углу):

crop1

Теперь максимальные координаты:

crop2

И, наконец, я запускаю сценарий pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 производя test_cropped.pdf который выглядит так:

result

Однако я понятия не имею, как решение Ghostscript сравнивается с pdfcrop с точки зрения качества и правильности.

Когда я не могу что-то сделать с pdftk, следующее место, куда я обращаюсь, - это PDFjam, который является оболочкой командной строки для pdf-страницы Пакет LaTeX (следовательно, вам также нужен этот пакет и установленный дистрибутив TeX). Для получения справки о том, как его использовать, я рекомендую обычный экран справки:

pdfjam --help

поскольку справочная страница разрежена, а веб-страница сосредоточена на примерах.

Чтобы обрезать PDF-файл, вам нужна команда примерно такого рода:

pdfjam --keepinfo --trim "10mm 15mm 10mm 15mm" --clip true --suffix "cropped" input.pdf

Это приведет к выводу файла с именем input-cropped.pdf. Порядок обрезки должен быть левым, нижним, правым, верхним, в соответствии с \includegraphics от graphicx.

Чтобы дать представление о том, как это сравнивается с PDFcrop, недавно у меня была причина обрезать довольно причудливый PDF-файл. Мой оригинал составлял 675 кБ, моя обрезанная версия через PDFjam составляла 1,2 МБ, в то время как версия, обрезанная через PDFcrop, составляла 4,5 МБ. В то время как PDFjam и PDFcrop удалили встроенные гиперссылки и закладки, PDFjam с --keepinfo опция сохранила свойства документа (например, название, автора, тему).

Брисс это не командная строка, но на нее стоит взглянуть.

То pdfCropMargins программа представляет собой приложение командной строки для автоматического обрезания полей PDF-файлов.

Эта программа зависит либо от программы Ghostscript, либо от программы pdftoppm, установленной (и доступной для поиска) в системе. И проанализируйте изображения страниц с помощью PIL, чтобы найти ограничивающие рамки, используя пороговое значение 191.

установка с помощью

pip установка pdfCropMargins

Запуск с помощью

pdf-обрезка-полей -v -s -u your-file.pdf

За помощью

pdf-обрезка-поля -h | more

Если графический инструмент тоже подойдет, я бы рекомендовал krop: http://arminstraub.com/software/krop

Это может вам помочь.
Это соответствует более новой версии Ubuntu и life.Это Мастер-редактор PDF. Вы можете использовать его для обрезки, добавления каких-то материалов и т.д.

Пример:
Это было доThis is beforeЭто происходит после сочетания клавиш ctrl + kenter image description here

Вы могли бы использовать скрипт pypdf с этой страницы. Но в ответе на этот вопрос stackexchange, похоже, также есть много вариантов.

Не могли бы вы, пожалуйста, описать, какую обрезку вы можете выполнить с помощью Adobe Acrobat pro? Потому что у меня его нет, и поэтому я не могу сказать, что вы ищете.

В Adobe Acrobat Pro мы можем использовать элементы управления полями для обрезки PDF-файла. мы можем предоставить значения для верхней, нижней, правой и левой сторон для обрезки