Я ищу инструмент командной строки с открытым исходным кодом для обрезки 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 (значения в верхнем левом углу):
Теперь максимальные координаты:
И, наконец, я запускаю сценарий pdf_crop_by_coordinates.sh test.pdf 45 429 38 419
производя test_cropped.pdf
который выглядит так:
Однако я понятия не имею, как решение 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. Вы можете использовать его для обрезки, добавления каких-то материалов и т.д.
Пример:
Это было доЭто происходит после сочетания клавиш ctrl + k
Вы могли бы использовать скрипт pypdf с этой страницы. Но в ответе на этот вопрос stackexchange, похоже, также есть много вариантов.
Не могли бы вы, пожалуйста, описать, какую обрезку вы можете выполнить с помощью Adobe Acrobat pro? Потому что у меня его нет, и поэтому я не могу сказать, что вы ищете.
В Adobe Acrobat Pro мы можем использовать элементы управления полями для обрезки PDF-файла. мы можем предоставить значения для верхней, нижней, правой и левой сторон для обрезки