Herramienta de línea de comandos para recortar archivos PDF

83

Estoy buscando una herramienta de línea de comandos de código abierto para recortar un archivo PDF como lo podemos hacer en Adobe Acrobat Pro. He probado PdfTk, ImageMagick, PyPDF y GhostScript, todos sin éxito hasta ahora.

    
pregunta Rakesh 24.04.2012 - 08:47

7 respuestas

105

Le sugiero que eche un vistazo a PDFcrop .

Si desea recortar un pdf con márgenes izquierdo, superior, derecho e inferior de 5, 10, 20 y 30 puntos (puntos), ejecute

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

en la terminal. Para recortar algo, use valores negativos en el argumento para recortar. Por ejemplo,

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

recorta 50 puntos desde la izquierda, arriba, derecha, abajo (en este orden).

Si ejecuta solo el comando pdfcrop input , generará un archivo titulado input-crop.pdf con cero márgenes. Encuentro esto muy útil cuando se incluyen ilustraciones en pdf en documentos.

Recortar varios archivos

Desafortunadamente, pdfcrop no puede recortar varios archivos en ese momento. Sin embargo, es fácil escribir un script que recorte todos los archivos PDF de la carpeta en la que se encuentra el script.

Crea un nuevo archivo vacío y llámalo something.sh . Ábralo con un editor de texto e inserte lo siguiente:

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

Guárdalo, y cierra. Luego haga clic derecho en el archivo, vaya a Propiedades > Permisos y verifique el campo Permitir la ejecución del archivo como programa . Ahora cierra el diálogo. Ejecute el script haciendo doble clic en él y seleccionando Ejecutar en Terminal . Y la nueva versión recortada de margen cero de todos los archivos PDF con el sufijo -crop ahora se imprimirá en la carpeta. Si desea márgenes u otras cosas, por supuesto puede abrir el script y agregar argumentos después de pdfcrop .

    
respondido por el Rasmus 23.08.2012 - 13:43
29

Gracias por Rasmus, puedes instalar pdfcrop desde el paquete texlive-extra-utils:

sudo apt-get install texlive-extra-utils

Luego recorte los archivos pdf usando el comando pdf crop como:

pdfcrop input.pdf output.pdf

use --help para ver más parámetros sorprendentes como --margins

pdfcrop --margins 5 input.pdf output.pdf

que recortar pdf con 5 pb de cada lado de la página

    
respondido por el sarigalin 13.04.2014 - 12:22
15

También puedes recortar archivos PDF simplemente usando Ghostscript. He escrito un pequeño script para simplificar el proceso (inspirado en esta respuesta ):

#!/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

Para determinar las coordenadas para el recorte, uso gv , que imprime las coordenadas del cursor del mouse usando las mismas unidades que Ghostscript. Por ejemplo, aquí se determinan las coordenadas mínimas para x / y (los valores en la esquina superior izquierda):

Ahoralascoordenadasmáximas:

Y finalmente, ejecuté el script pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 produciendo un test_cropped.pdf que se parece a esto:

Sin embargo, no tengo idea de cómo se compara la solución de Ghostscript con pdfcrop en términos de calidad y corrección.

    
respondido por el bluenote10 03.03.2015 - 12:38
13

Cuando no puedo hacer algo con pdftk, el siguiente lugar al que me dirijo es PDFjam , que es un comando envoltura de línea para el paquete LaTeX de pdfpages (por lo tanto, también necesita eso y una distro TeX instalada). Para obtener ayuda sobre cómo usarlo, recomiendo la pantalla de ayuda regular:

pdfjam --help

ya que la página de manual es escasa y la página web se concentra en ejemplos.

Para recortar un PDF, el comando que necesita es algo como esto:

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

Esto generará un archivo llamado input-cropped.pdf . El orden de los ajustes debe ser izquierdo, inferior, derecho, superior, según \includegraphics de graphicx .

Para dar una idea de cómo se compara con PDFcrop, tuve motivos para recortar un PDF bastante elegante recientemente. Mi original era de 675 kB, mi versión recortada a través de PDFjam era de 1.2 MB, mientras que una versión recortada a través de PDFcrop era de 4.5 MB. Aunque tanto PDFjam como PDFcrop eliminaron los hipervínculos y marcadores incrustados, PDFjam con la opción --keepinfo conservó las propiedades del documento (por ejemplo, título, autor, tema).

    
respondido por el Alex Ball 21.07.2015 - 15:29
3

Si una herramienta gráfica también está bien, recomendaría krop : enlace

    
respondido por el Sunday 18.05.2016 - 13:52
3

Esto puede ayudarte.
Esto está de acuerdo con la versión más reciente de Ubuntu y la vida. Esto es Master PDF Editor . Puedes usarlo para recortar, agregar algunas cosas, etc.

Ejemplo:
Esto es antes Estoesdespuésdectrl+k

    
respondido por el Shamina 14.03.2017 - 18:36
2

Puede usar un script pypdf de esta página . Pero en la respuesta a esta pregunta de intercambio de pila , parece haber muchas opciones también.

    
respondido por el xubuntix 24.04.2012 - 09:04

Lea otras preguntas en las etiquetas