Strumento a linea di comando per ritagliare i file PDF

83

Sto cercando uno strumento da riga di comando open source per ritagliare il file PDF proprio come possiamo fare con Adobe Acrobat Pro. Ho provato PdfTk, ImageMagick, PyPDF e GhostScript, tutti senza successo fino ad ora.

    
posta Rakesh 24.04.2012 - 10:47

7 risposte

105

Ti suggerisco di dare un'occhiata a PDFcrop .

Se desideri ritagliare un pdf con i margini sinistro, superiore, destro e inferiore di 5, 10, 20 e 30 punti (punti), quindi esegui

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

nel terminale. Per ritagliare effettivamente qualcosa, usa i valori negativi nell'argomento per il ritaglio. Ad esempio,

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

ritaglia 50 punti a sinistra, in alto, a destra, in basso (in quest'ordine).

Se si esegue solo il comando pdfcrop input , verrà generato un file denominato input-crop.pdf con margini zero. Lo trovo molto utile quando includo illustrazioni in formato PDF nei documenti.

Ritaglio di più file

Sfortunatamente, pdfcrop non può ritagliare più file al momento. È comunque facile scrivere uno script che ritagli tutti i pdf nella cartella in cui si trova lo script.

Crea un nuovo file vuoto e chiamalo something.sh . Aprilo con un editor di testo e inserisci quanto segue:

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

Salvalo e chiudi. Quindi fai clic con il pulsante destro sul file, vai su Proprietà & gt; Permessi e controlla il campo Consenti l'esecuzione del file come programma . Ora chiudi la finestra di dialogo. Esegui lo script facendo doppio clic su di esso e scegliendo Esegui nel terminale . E la nuova versione ritagliata a zero margine di tutti i pdf con suffisso -crop verrà ora stampata nella cartella. Se vuoi margini o altre cose, puoi ovviamente solo aprire lo script e aggiungere argomenti dopo pdfcrop .

    
risposta data Rasmus 23.08.2012 - 15:43
29

Grazie per Rasmus, puoi installare pdfcrop dal pacchetto texlive-extra-utils:

sudo apt-get install texlive-extra-utils

Quindi ritaglia i file pdf usando il comando di ritaglio PDF come:

pdfcrop input.pdf output.pdf

usa --help per vedere altri parametri sorprendenti come --margins

pdfcrop --margins 5 input.pdf output.pdf

che ritaglia il pdf con 5 bp da ciascun lato della pagina

    
risposta data sarigalin 13.04.2014 - 14:22
15

Puoi anche ritagliare i file PDF usando semplicemente Ghostscript. Ho scritto un piccolo script per semplificare il processo (ispirato da questa risposta ):

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

Per determinare le coordinate per il ritaglio, utilizzo gv , che stampa le coordinate del cursore del mouse usando le stesse unità di Ghostscript. Ad esempio, qui determino le coordinate minime per x / y (i valori nell'angolo in alto a sinistra):

Oralecoordinatemassime:

E infine, eseguo lo script pdf_crop_by_coordinates.sh test.pdf 45 429 38 419 producendo un test_cropped.pdf che assomiglia a questo:

Non ho idea, però, di come la soluzione di Ghostscript sia comparabile a pdfcrop in termini di qualità e correttezza.

    
risposta data bluenote10 03.03.2015 - 13:38
13

Quando non riesco a fare qualcosa con pdftk, il prossimo posto che faccio è PDFjam , che è un comando line wrapper per il pdfpages pacchetto LaTeX (quindi è necessario anche installare una distribuzione TeX). Per assistenza su come usarlo, ti consiglio la schermata di aiuto regolare:

pdfjam --help

poiché la pagina man è sparsa e la pagina Web si concentra sugli esempi.

Per ritagliare un PDF, il comando che ti serve è qualcosa del tipo:

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

Questo produrrà un file chiamato input-cropped.pdf . L'ordine dei ritagli deve essere lasciato, in basso, a destra, in alto, come per \includegraphics da graphicx .

Per dare un'idea di come si confronta con PDFcrop, ho avuto motivo di ritagliare un PDF piuttosto elaborato di recente. Il mio originale era 675 kB, la mia versione ritagliata tramite PDFjam era 1,2 MB, mentre una versione ritagliata tramite PDFcrop era di 4,5 MB. Mentre sia PDFjam che PDFcrop hanno rimosso gli hyperlink e i segnalibri incorporati, PDFjam con l'opzione --keepinfo ha conservato le proprietà del documento (ad esempio titolo, autore, oggetto).

    
risposta data Alex Ball 21.07.2015 - 17:29
3

Se anche uno strumento grafico va bene, consiglierei krop : link

    
risposta data Sunday 18.05.2016 - 15:52
3

Questo può aiutarti.
Questo è in accordo con la versione più recente di Ubuntu e della vita. Questo è Master PDF Editor . Puoi usarlo ritagliare, aggiungere alcune cose, ecc.

Esempio:
Questo è prima Questoèdopoctrl+k

    
risposta data Shamina 14.03.2017 - 19:36
2

Potresti utilizzare uno script pypdf da questa pagina . Ma nella risposta a questa domanda di stackexchange , sembra che ci siano molti opzioni pure.

    
risposta data xubuntix 24.04.2012 - 11:04

Leggi altre domande sui tag