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.
pdfshufflerfunziona bene il 14.04 amd64.
Per unire due file pdf file1.pdfe file2.pdf:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Maggiori informazioni disponibili qui Way Back Machine .
cate outputseguono 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.
pdftkpreso 0m0.484s, gspreso 1m32.898s (che è quasi 200x più lento) Il file da gsera però circa il 21% più piccolo.
file1.pdf file2.pdfconfile*.pdf
gslavorato con alcuni PDF "non conformi" dove pdftksarebbero andati avanti per sempre.
-dPDFSETTINGS=/prepressopzione dal miglioramento della qualità. Tutti grazie per il contributo
file*.pdfcon file1.pdf file2.pdfprima 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.pdfverrà sovrascritto senza preavviso, quindi pdfunite *.pdfnon funzionerà come previsto.
cpsovrascrive 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.
aptnon 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.pdfe file2.pdf. Crea un file chiamato output.texe 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).pdfma 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!