Estrai la prima pagina da più pdf


17

Ho circa 500 PDF da consultare ed estrarre la prima pagina di. Devono quindi passare attraverso un processo di conversione che richiede tempo, quindi sperava di provare a risparmiare un po 'di tempo con un processo batch per estrarre solo la prima pagina dai 500 pdf e inserirla in un nuovo pdf. Acrobat ha dato una sbirciatina ma non riesce a trovare un vero metodo per farlo per più file. Qualcuno sa altri programmi o metodi che questo potrebbe essere raggiunto? Ovviamente gratuiti e open source sono più favorevoli :)

EDIT: In realtà hanno avuto un certo successo usando GhostScript per estrarre solo una pagina. Sto ora esaminando come raggrupparlo e prendere l'elenco dei file e utilizzarli.


Cosa comportano gli altri passaggi del processo di conversione?
Ignacio Vazquez-Abrams,

A proposito della tua modifica, vedi la mia modifica.
frabjous,

Risposte:


29

Utilizzo di pdftk ...

Su mac e linux dalla riga di comando.

for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done

Su Windows, è possibile creare un file batch. Apri Blocco note, incollalo all'interno:

for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"

Potrebbe essere necessario sostituire "pdftk.exe" con il percorso completo di pdftk, ad esempio, "C:\Program Files\pdftk\pdftk.exeo qualunque cosa sia. (Non uso Windows quindi non lo so.)

Salvalo con un'estensione che termina con .bat, rilascialo nella cartella con i PDF e fai doppio clic.

Puoi fare la stessa cosa con Ghostscript, sì.

Vediamo. Per Mac e Linux (tutta una riga):

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done

Non sono esattamente sicuro di quale sarebbe il comando corrispondente per un file batch di Windows. La mia ipotesi migliore (- non ho Windows quindi non posso testare--):

for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"

Controlla bene che il percorso dell'eseguibile dello script fantasma sia corretto e, bene, non l'ho provato poiché non uso Windows.


EDIT: OK, ho appena capito che probabilmente non vuoi 500 PDF da 1 pagina, ma un singolo PDF che li combina tutti. Basta eseguire quanto sopra e questo ti lascerà con 500 PDF di 1 pagina. Per combinarli usando pdftk ... su mac e linux:

pdftk *-page1.pdf cat output combined.pdf

Penso che sia probabilmente lo stesso su Windows, tranne forse per aver bisogno del percorso completo di pdftk, come sopra. Puoi semplicemente aggiungere quella riga dopo la riga sopra nel tuo file batch.

Con Ghostscript ... su Mac e Linux:

gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf

Ed è probabilmente lo stesso su Windows, tranne che per sostituire "gs" all'inizio con il percorso completo di gswin32c.exe, come sopra.

Potrebbe esserci un modo in cui ghostscript può fare entrambe le cose in un solo passaggio, ma sono troppo pigro per capirlo adesso.

Se l'ordine in cui combinarli è importante, allora avremo bisogno di maggiori informazioni.


questo è il comando che stavo cercando. ho passato il pomeriggio a leggere se loop in linux! Il tuo comando iniziale è quello corretto, cioè ho bisogno di 500 pdf a pagina singola. Era riuscito a ottenere tutte le prime pagine in un unico pdf ma la conversione in Excel lo rende quindi ingestibile. I miei utenti hanno delle richieste molto specifiche e requisiti di layout che sono esasperanti ma impegnativi. grazie per il tuo aiuto!!
Tim Alexander,

2

Ho dovuto farlo oggi su Linux. Dovrebbe funzionare anche per Mac. Eseguire il comando seguente dal proprio terminale.

lpr -o page-ranges="1-1" path/to/folder/*.pdf

lpr invia i lavori alla stampante.

Nota l'uso del carattere * nel comando. Ciò eseguirà il comando per tutti i file PDF nella directory.


Come sottolineato, questo invierà i lavori alla stampante. Non è ciò che OP richiede.
Nick K9,

1

Penso che potresti usare una stampante virtuale pdf, come pdf-forge.

Devi solo "stampare" la prima pagina, io su un mac ora e non posso provarlo ma sono abbastanza sicuro che puoi farlo più di uno alla volta.

In bocca al lupo!!

Trufa


grazie per i suggerimenti su quelli. questi mi hanno portato a GhostScript che sembra che potrebbe essere in grado di fare quello che voglio. Grazie
Tim Alexander,

@Tim Alexander, nessun problema !!
Trufa,

0

come per il comando del file batch di Windows (.bat) (%% è per le variabili in un file bat)

estrazione della prima pagina di pdf come jpg con risoluzione / dimensioni ridotte

for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"

(nel post sopra sOutputFile è stato scritto in modo sbagliato .. e con il percorso corrente dell'installazione standard xs gs)

(guarda anche Usare Ghostscript per convertire PDF multipagina in un singolo JPG? )


0

Su Linux

Ho scritto questa riga di comando

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} pdftk {} cat 1 output {}.firstpage.pdf

Ma fa il lavoro, l'ho provato, funziona anche con tutti i livelli di cartelle che hai. Assicurati solo di eseguirlo come radice della struttura delle cartelle. Ogni cartella avrà per ogni file pdf un pdf adizionale che termina con.firstpage.pdf

È necessario pdftke treeper questo e su Ubuntu Linux è possibile installarlo con apt:

sudo apt install pdftk tree

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.