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

81

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

    
задан Rakesh 24.04.2012 в 10:47
источник

7 ответов

103

Я бы посоветовал вам взглянуть на 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 , она выведет файл под названием input-crop.pdf с нулевыми полями. Я считаю, что это очень удобно, когда в документах представлены иллюстрации в формате PDF.

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

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

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

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

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

    
ответ дан Rasmus 23.08.2012 в 15:43
28

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

sudo apt-get install texlive-extra-utils

Затем обрезайте pdf-файлы с помощью команды pdf crop как:

pdfcrop input.pdf output.pdf

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

pdfcrop --margins 5 input.pdf output.pdf

, которые обрезают pdf с 5 bp с каждой стороны страницы

    
ответ дан sarigalin 13.04.2014 в 14:22
15

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

#!/bin/bash

if [ $# -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 65
fi

file="$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 (значения в верхнем левом углу):

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

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

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

    
ответ дан bluenote10 03.03.2015 в 13:38
13

Когда я не могу что-то сделать с pdftk, следующее место, куда я перехожу, PDFjam , line для pdfpages пакета 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 сохранил свойства документа (например, название, автор, тема).

    
ответ дан Alex Ball 21.07.2015 в 17:29
3

Если графический инструмент тоже прекрасен, я бы рекомендовал krop : Ссылка

    
ответ дан Sunday 18.05.2016 в 15:52
3

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

Пример:
Это прежде Этопроисходитпослеctrl+k

    
ответ дан Shamina 14.03.2017 в 19:36
2

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

    
ответ дан xubuntix 24.04.2012 в 11:04