Я ищу инструмент командной строки с открытым исходным кодом для обрезки PDF-файла, как мы можем это сделать в Adobe Acrobat Pro. Я пробовал PdfTk, ImageMagick, PyPDF и GhostScript - пока безуспешно.
Это может помочь тебе.
Это соответствует более новой версии Ubuntu и жизни. Это Master PDF Editor . Вы можете использовать его, обрезать, добавлять некоторые вещи и т. Д.
Я бы посоветовал вам взглянуть на 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 можно установить 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 BP с каждой стороны страницы
Можно также обрезать файлы 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
создание a test_cropped.pdf
который похож на это:
Я понятия не имею, хотя, как решение Ghostscript выдерживает сравнение с pdfcrop
с точки зрения качества и правильности.
Если графический инструмент также подходит, я бы порекомендовал krop
: http://arminstraub.com/software/krop
Программа pdfCropMargins представляет собой приложение командной строки для автоматического обрезания полей PDF-файлов.
Эта программа зависит либо от программы Ghostscript, либо от программы pdftoppm, устанавливаемой (и доступной) в системе. И проанализируйте изображения страниц с помощью PIL, чтобы найти ограничивающие рамки, используя порог 191.
установите с помощью
pip install pdfCropMargins
blockquote>Запустите с помощью [ 115]
pdf-crop-margins -v -s -u your-file.pdf
blockquote>Для помощи
pdf-crop-margins -h | больше
blockquote>
Вы можете использовать скрипт pypdf с этой страницы . Но в ответе на на этот вопрос об обмене стеками , похоже, есть и много вариантов.
Брисс не является командной строкой, но стоит посмотреть.
Когда я не могу что-то сделать с pdftk, следующим местом, куда я обращаюсь, является PDFjam , который является оболочкой командной строки для пакета 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
сохранял свойства документа (например, заголовок, автор, тема).