Esistono molti software in Windows per unire i file PDF, ma come possiamo fare lo stesso in Ubuntu?
Esistono molti software in Windows per unire i file PDF, ma come possiamo fare lo stesso in Ubuntu?
Risposte:
Se vuoi uno strumento con una semplice GUI, prova pdfshuffler . Consente l'unione di PDF, nonché la riorganizzazione e l'eliminazione di pagine. Per l'elaborazione batch e / o attività più complesse, pdftk è ovviamente più potente.
pdfshuffler
funziona bene il 14.04 amd64.
Per unire due file pdf file1.pdf
e file2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Maggiori informazioni disponibili qui Way Back Machine .
cat
e output
seguono argomenti di input variadici e di nuovo seguito da un argomento di output.
Ghostscript è un pacchetto (disponibile per impostazione predefinita in Ubuntu) che consente di visualizzare o stampare file PostScript e PDF in altri formati o di convertirli in altri formati.
Per utilizzare Ghostscript per combinare file PDF, digitare qualcosa di simile al seguente:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
Ecco una breve spiegazione del comando:
gs starts the Ghostscript program.
-dBATCH once Ghostscript processes the PDF files, it should exit.
If you don't include this option, Ghostscript will just keep running.
-dNOPAUSE forces Ghostscript to process each page without pausing for user interaction.
-q stops Ghostscript from displaying messages while it works
-sDEVICE=pdfwrite
tells Ghostscript to use its built-in PDF writer to process the files.
-sOutputFile=finished.pdf
tells Ghostscript to save the combined PDF file with the specified name.
-dAutoRotatePages=/None
Acrobat Distiller parameter AutoRotatePages controls the automatic orientation selection algorithm: For instance: -dAutoRotatePages=/None or /All or /PageByPage.
I tuoi file di input non devono nemmeno essere file PDF. Puoi anche usare file PostScript o EPS o qualsiasi combinazione dei tre.
C'è molto che puoi fare con Ghostscript. Puoi leggere la sua documentazione per maggiori dettagli.
pdftk
preso 0m0.484s, gs
preso 1m32.898s (che è quasi 200x più lento) Il file da gs
era però circa il 21% più piccolo.
file1.pdf file2.pdf
confile*.pdf
gs
lavorato con alcuni PDF "non conformi" dove pdftk
sarebbero andati avanti per sempre.
-dPDFSETTINGS=/prepress
opzione dal miglioramento della qualità. Tutti grazie per il contributo
file*.pdf
con file1.pdf file2.pdf
prima di passare gli argomenti al comando.
È inoltre possibile utilizzare pdfunite per unire i documenti pdf:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
verrà sovrascritto senza preavviso, quindi pdfunite *.pdf
non funzionerà come previsto.
cp
sovrascrive anche l'ultimo argomento senza preavviso. Questo è solo per gli utenti affrettati (come me) - Sono stato fortunato ad avere un backup del file in questione ...
Una soluzione molto bella è PDFChain. La sua GUI è un frontend di PDFTK dove puoi unire, dividere o persino aggiungere un po 'di sfondo ai tuoi file PDF.
apt
non ha dato alcun risultato, comunque: /
Un approccio alternativo è usare Latex come spiegato in questo post ( senza accesso root supponendo che tu abbia installato pdflatex ): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- latice
Ciò è utile nel caso in cui non si disponga degli strumenti menzionati né dei privilegi di root, ma si disponga di pdflatex.
Copio il codice tex qui sotto per unire file1.pdf
e file2.pdf
. Crea un file chiamato output.tex
e inserisci:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
E per compilare, basta usare: pdflatex output.tex
Il file unito verrà denominato come output.pdf
.
Uso pdfseparate per estrarre pagine specifiche da un grande file pdf:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
e successivamente mi unisco a tutti tramite comando:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
Questo unisce:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
dentro, come moto a luogo, andare da dentro a fuori: I put my hand inTO my pocket = metto la mano in tasca:
out2014-12-14_23_25_36.pdf
Potrebbe esserci un modo più semplice per far fronte ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
ma manca l'ordinamento di ls -v
. Una soluzione ovvia e banale è quella di nominare i tuoi file in modo che ordinino naturalmente nell'ordine in cui li vuoi includere. Se vuoi assolutamente ls -v
, puoi almeno perdere la pipa tr
, il che non fa nulla qui.
Usa pdfsam http://www.pdfsam.org/ è ottimo per dividere e unire pdf
È possibile utilizzare pdftk per unire e modificare i documenti PDF in generale. In alternativa c'è un servizio online per fare proprio questo: http://www.pdfmerge.com/
Ecco il mio approccio:
Ecco il risultato:
#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'
Juste incolla questo script in
/home/your_username/.local/share/nautilus/scripts
e chiamalo "merge_pdfs.sh" (ad esempio). Quindi rendilo eseguibile (fai clic con il tasto destro su merge_pdfs.sh -> scheda Autorizzazioni -> spunta "Consenti l'esecuzione del file come programma"
Quindi ora per unire i file pdf, devi solo selezionarli -> tasto destro -> script -> merge_pdfs.sh e creerà un file "merged.pdf" nella stessa directory
Spero che sia d'aiuto!