Adobe Acrobat: come combinare in batch più file pdf?


10

Ho 3 cartelle:

Folder 1 
Folder 2
Folder 3

In ogni cartella ho 5 file pdf:

    Folder 1 
       file1.pdf
       file2.pdf
    Folder 2
       file1.pdf
       file2.pdf
    Folder 3
       file1.pdf
       file2.pdf

Voglio che in ogni cartella abbia un file combinato di quei due file:

    Folder 1 
       binder.pdf
    Folder 2
       binder.pdf
    Folder 3
       binder.pdf

Qualche idea? Non dire di farlo manualmente. Questo caso è solo per spiegarti il ​​mio problema. Pensa che ho centinaia di cartelle. :) Forse posso usare un altro strumento al posto di Adobe Acrobat ?!


Cosa intendi esattamente con "avere un file combinato di questi due file" ? Sarebbe concatenare e unire questi due file in 1 opera PDF per voi?
Kurt Pfeifle,

Adobe Acrobat o Adobe Acrobat Reader ?
wmz,

@AndreiAndre Alla tua domanda sono state inviate molte buone soluzioni. Forse potresti scegliere quello che si adatta a tutte le tue esigenze e contrassegnarlo come accettato.
nixda,

Risposte:


12

Puoi farlo con un breve file batch e pdftk.exe (non pdftk Builder che è la versione della GUI).
Non è necessario installare nulla.

Preparazione

  • scarica ed estrai pdftk con UniExtract
  • Apri .. \ pdftk \ bin * e copia pdftk.exe e libiconv2.dll in una cartella a tua scelta
  • crea un nuovo file di testo e incolla il seguente codice

    @echo off
    setlocal enabledelayedexpansion
    FOR %% A IN (% *) DO (imposta command =! Command! %% A)
    pdftk.exe% command% cat output "% ~ dp1binder.pdf"
    
  • Salvalo come merge@pdf.cmd nella stessa cartella di pdftk.exe e libiconv2.dll inserisci qui la descrizione dell'immagine
  • crea un collegamento di questo .cmd e inseriscilo nella cartella sendto ( Win+ R»shell: sendto)

uso

  • Vai a una cartella con alcuni file PDF e seleziona tutti i PDF che desideri
  • Fai clic con il tasto destro del mouse e scegli il collegamento che hai appena creato
  • verrà creato un nuovo PDF legante nella stessa cartella in cui tutti i PDF selezionati vengono uniti in uno solo

    inserisci qui la descrizione dell'immagine

Aggiornamento: versione che utilizza il nome della cartella corrente come nome file per il pdf generato

@echo off
setlocal enabledelayedexpansion
:: Concat all paths fromselected files and save it as command
FOR %%A IN (%*) DO (set command=!command! %%A)

:: Take path from first selected file and save it as path
set path=%~dp1
echo %path%

:: Check if a trailing slash is present. If yes, remove it
IF %path:~-1%==\ SET path=%path:~0,-1%

:: Get last folder from path
FOR %%F in ("%path%") do (set lastFolder=%%~nxF)

:: Call pdftk, pass on command. use lastFolder as filename
pdftk.exe %command% cat output "%path%\%lastFolder%.pdf"

Risposta MOLTO bella. Faccio fatica a modificarlo, quindi salva come FOLDERNAME anziché binder.pdf. Come potrei farlo?
Chen Statistiche Yu

@ChenStatsYu Vedi aggiornamento
nixda

GRANDE!! Mi dispiace chiedere di nuovo, non sono sicuro se dovrei iniziare un nuovo post. Solo un'ultima richiesta, come sto ripetendo per quasi 40/50 cartelle, possiamo modificarla per inviare la "cartella" al cmd e usare il nome utente, anziché selezionare alcuni pdf dalla cartella?
Chen Statistiche Yu

Inoltre, spero di averlo a supporto di nomi non inglesi.
Chen Statistiche Yu

5

Se utilizzi Linux (o Mac o qualsiasi ambiente in cui è installato), puoi utilizzare uno strumento da riga di comando chiamato ghostscript per combinarli.

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH file1.pdf file2.pdf file3.pdf

È inoltre possibile utilizzare quanto segue per combinare tutti i file nella cartella corrente

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH *.pdf 

Puoi scaricare ghostscript qui . C'è anche una versione di Windows, ma non l'ho provata.


1
Funziona anche su Windows. Ho dovuto scrivere il percorso completo dell'eseguibile ghostscript (sul mio PC è "c: \ Programmi \ gs \ gs9.07 \ bin \ gswin32c.exe") e l'espansione "* .pdf" non funziona, ma ghostscript stesso funziona perfettamente.
Pitarou,

3

Ho usato con successo la soluzione sopra. Tuttavia, sul mio sistema (Windows 7 a 64 bit) il codice così com'è aggiunge i PDF in ordine (apparentemente) casuale, non in ordine alfabetico per nome file.

Per farlo aggiungere i file in ordine alfabetico, dovrai aggiungere il parametro sort-object al comando DIR (aka Get-ChildItem) (l'oggetto sort non accetta parametri qui come nome file / alfabetico è il default):

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | group DirectoryName % {& $PDFtk $.group CAT OUTPUT "$($.Name)\$outputfile" verbose}

Coloro che hanno nomi di file in formato 1.pdf 2.pdf ... 10.pdf ecc. Anziché 01.pdf 02.pdf .. 10.pdf possono anche provare una variante di questo:

pdftk *?.pdf *??.pdf *???.pdf *????.pdf cat output out.pdf

"sopra la soluzione" - presumibilmente intendi la soluzione di nixda. Se la tua risposta venisse votata più in alto di quella di nixda, sarebbe inferiore
noodle

1

Esiste un nuovo strumento di manipolazione PDF avanzato online chiamato Sej-da, che è ancora in versione beta, che ha una miriade di funzioni PDF (inclusa la possibilità di unire più PDF). È gratuito e potrebbe aiutare le tue esigenze.

http://sejda.com/

Una breve revisione delle sue funzioni è stata effettuata solo un paio di settimane fa dalla Revisione 3:

http://revision3.com/tzdaily/sejda-online-pdf


l'OP è chiaramente in grado di unire file pdf, vuole unire in batch con un processo automatizzato. La tua risposta non fornisce dettagli su come utilizzare sejda in questo modo, né risulta dal loro sito web
noodle

1

Forse è meglio usare uno scenario batch. Crea e raccogli tutti i tuoi file pdf come xxxx.abcdef.pdf.

La prima parte è il cosiddetto tag batch; la seconda parte è l'identificatore del file (nome del file). I tag per ogni retro sono simili per lunghezza e valore; il nome dei file viene dopo il punto.

Ad esempio, il tuo primo batch è composto da 1111.3425.pdf, 1111.76501.pdf, ecc. Il secondo lotto è 22222.1432.pdf, 22222.4398 e così via. E così via e così via per altri lotti.

Quindi è possibile utilizzare un software di unione automatica in grado di gestire migliaia di file creando un'unione separata per ciascun batch. Ho trovato questo software gratuito Dysprosium che non ha bisogno di una riga di comando o di uno script batch. Puoi scaricarlo come file JAR portatile. Ha diversi scenari automatizzati; uno descritto in questa risposta come tag e uno come cartella richiesta separata.

A seconda dell'hardware, è possibile unire in batch migliaia di file in batch predefiniti.


0

Prova PDFMerge . Ma non usare il modulo iniziale in cui devi selezionare ogni file uno per uno. Invece, attendi che il sito controlli l'installazione di Java, quindi fai clic sul link "Prova l'applet Java PDFMerge". Una volta che l'applet è stata caricata e può essere eseguita, fai clic sul pulsante Scegli file e sarai in grado di selezionare più file (per unire in un unico file).

La fusione sarà superveloce e sarà in grado di gestire un gran numero di file poiché nulla viene caricato nel sito Web. Tutto viene eseguito sul tuo computer utilizzando la tua installazione Java.

PS: mi dispiace se stai cercando un software offline che può essere personalizzato per creare singoli file PDF su più cartelle.


0

Se sei su Mac, puoi creare uno script di Automator per raggiungere questo obiettivo. Rendilo come un'azione cartella e semplicemente trascina i pdf in esso e vedi che succede! Se vuoi posso mostrarti come, stai eseguendo mac?


0

Su Linux

Ho scritto questa riga di comando piuttosto lunga

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} dirname {} | uniq | xargs -L1 -I {} bash -c 'cd "$0" && pdftk *.pdf cat output binder.pdf' {}

Ma fa il lavoro, l'ho provato, funziona anche con quanti livelli di cartelle hai. Assicurati solo di eseguirlo come radice della struttura delle cartelle.

È 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.