L'ho fatto utilizzando la versione coerente della community di strumenti da riga di comando PDF .
Puoi scaricare sia gli strumenti predefiniti che il codice sorgente per compilare il successivo da solo, tuttavia quest'ultimo richiede l'installazione di OCaml durante la compilazione. Quindi gli strumenti predefiniti sono la via più facile da percorrere. Il file di distribuzione scaricato, ad es. cpdf-binaries-master.zip , contiene i binari per Linux, OS X / macOS e Windows ed ha una dimensione ~ 5 MB.
Una volta scaricato ed estratto (facendo doppio clic sul file .zip) copierai, ad es. ~ / Downloads / cpdf-binaries-master / OSX-Intel / cpdf , file in una posizione definita nella variabile di ambiente PATH
, ad es. /usr/local/bin/
per renderlo globalmente disponibile nella riga di comando di Terminal. Se non è in PATH
, dovrai utilizzare il nome di percorso completo nell'eseguibile cpdf
o ./cpdf
se si trova nella presente directory di lavoro ( pwd
). In Terminale, digita echo $PATH
, quindi mostra PATH
.
La sintassi per la rimozione della prima pagina quando il file PDF ha 2 o più pagine è:
cpdf in.pdf 2-end -o out.pdf
Poiché cpdf
legge il file originale ( in.pdf ) e scrive in un nuovo file ( out.pdf ) out.pdf nomefile deve essere diverso se salvato nella stessa posizione del file in.pdf , o salvarlo in un'altra posizione con lo stesso in.pdf nomefile come out.pdf nomefile o qualsiasi out.pdf nome file desiderato.
Di seguito, mostrerò due esempi di automazione usando cpdf
per rimuovere la prima pagina di un file PDF, supponendo che abbia due o più pagine. Uno che utilizza un Automator come servizio disponibile in Finder nel menu di scelta rapida > e l'altro come bash
script , da utilizzare in Terminale.
Come flusso di lavoro del servizio di automazione disponibile nel Finder nel menu di scelta rapida dei servizi:
In Automator crea un nuovo flusso di lavoro del servizio usando le impostazioni come mostrato nell'immagine sottostante e copia e incolla il codice sotto l'immagine in Esegui script di shell azione e salva come ad es .: Rimuovi prima pagina da PDF
Per utilizzare Rimuovi prima pagina da PDF , in Finder seleziona i file PDF da cui desideri rimuovere la prima pagina, quindi seleziona Rimuovi prima pagina da PDF dal Menu di scelta rapida tramite tasto destro del mouse o control-click o da Finder > Servizi > Rimuovi prima pagina da PDF
forfin"$@"; do
# Get Page Count.
p="$(/usr/local/bin/cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
/usr/local/bin/cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
done
Tieni presente che PATH
ha passato un Esegui script shell azione in Automator , /usr/bin:/bin:/usr/sbin:/sbin
. Quindi il codice sopra sta usando il nome completo del percorso al cpdf
eseguibile , /usr/local/bin/cpdf
poiché è lì che l'ho inserito così come essere disponibile in Terminale utilizzando il suo nome cpdf
, solo.
Si noti inoltre che se non si desidera conservare i file originali, rimuovere il commento (rimuovere #
di fronte a) il comando # rm "${fn} (original).${ext}"
comando , appena sopra l'ultima riga di < em> codice done
.
Come bash
script da utilizzare nel terminale:
Crea lo script bash
nel modo seguente:
Nel terminale:
touch rfpfpdf
open rfpfpdf
Copia il blocco di codice , a partire da #!/bin/bash
, sotto nel documento aperto rfpfpdf
e quindi salvalo.
Indietro nel Terminale:
Crea l'eseguibile script :
chmod u+x rfpfpdf
Ora sposta lo rfpfpdf
script in, ad esempio /usr/local/bin/
sudo mv rfpfpdf /usr/local/bin/
Puoi quindi cambiare la directory cd ...
in una directory che contiene i file PDF da cui vuoi rimuovere la prima pagina, quindi digita rfpfpdf
e premi invio .
I file originali verranno spostati in " nomefile (originale) .pdf " e il nuovo file PDF creato senza la prima pagina, se 2 o più pagine, avrà il nome originale filename.pdf
.
#!/bin/bash
for f in *.pdf *.PDF; do
if [[ -f $f ]]; then
# Get Page Count.
p="$(cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
fi
done
Si noti che il codice sopra assume che cpdf
eseguibile si trovi in una directory che si trova all'interno dell'ambiente PATH
variabile , ad es .: /usr/local/bin/
Si noti inoltre che se non si desidera conservare i file originali, rimuovere il commento (rimuovere #
di fronte a) il comando # rm "${fn} (original).${ext}"
comando , appena sopra l'ultima riga di < em> codice done
.