Hay una gran cantidad de software en Windows para fusionar archivos PDF, pero ¿cómo podemos hacer lo mismo en Ubuntu?
Hay una gran cantidad de software en Windows para fusionar archivos PDF, pero ¿cómo podemos hacer lo mismo en Ubuntu?
Respuestas:
Si desea una herramienta con una GUI simple, pruebe pdfshuffler . Permite la fusión de archivos PDF, así como la reorganización y eliminación de páginas. Para el procesamiento por lotes y / o tareas más complicadas, pdftk es, por supuesto, más potente.
pdfshuffler
funciona bien el 14.04 amd64.
Para fusionar dos archivos pdf file1.pdf
y file2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Más información disponible aquí Way Back Machine .
cat
y output
los argumentos de entrada varían y siguen de nuevo un argumento de salida.
Ghostscript es un paquete (disponible de forma predeterminada en Ubuntu) que le permite ver o imprimir archivos PostScript y PDF a otros formatos, o convertir esos archivos a otros formatos.
Para usar Ghostscript para combinar archivos PDF, escriba algo como lo siguiente:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
Aquí hay una breve explicación 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.
Sus archivos de entrada ni siquiera necesitan ser archivos PDF. También puede usar archivos PostScript o EPS, o cualquier combinación de los tres.
Hay mucho que puedes hacer con Ghostscript. Puede leer su documentación para más detalles.
pdftk
tomó 0m0.484s, gs
tomó 1m32.898s (eso es casi 200 veces más lento) Sin gs
embargo, el archivo era aproximadamente un 21% más pequeño.
file1.pdf file2.pdf
confile*.pdf
gs
trabajé con algunos archivos PDF "no conformes" donde pdftk
simplemente se ejecutarían para siempre.
-dPDFSETTINGS=/prepress
Opción de uso de mejora de calidad. Todo gracias por el colaborador
file*.pdf
con file1.pdf file2.pdf
antes de pasar los argumentos para el comando.
También usa pdfunite para fusionar documentos pdf:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
se sobrescribirá sin previo aviso, por pdfunite *.pdf
lo que no funcionará como se esperaba.
cp
también sobrescribe el último argumento sin previo aviso. Esto es sólo para usuarios corriendo (como yo) - Tuve la suerte que tenía una copia de seguridad del archivo en cuestión ...
Una solución muy buena es PDFChain. Su GUI es una interfaz de PDFTK donde puede fusionar, dividir o incluso agregar algo de fondo a sus archivos PDF.
apt
embargo, intentar buscar no dio ningún resultado: /
Un enfoque alternativo es usar Latex como se explica en esta publicación ( sin acceso de root, suponiendo que tenga instalado pdflatex ): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- látex
Esto es útil en caso de que no tenga las herramientas mencionadas ni los privilegios de root, pero sí tiene pdflatex.
Copio el código de texto a continuación para fusionar file1.pdf
y file2.pdf
. Crea un archivo llamado output.tex
y pon:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
Y para compilar, simplemente use: pdflatex output.tex
El archivo fusionado se nombrará como output.pdf
.
Utilizo pdfseparate para extraer páginas específicas de archivos PDF grandes:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
y luego me uno a todos a través del comando:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
Esto se une a:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
dentro:
out2014-12-14_23_25_36.pdf
Puede haber una manera más fácil de hacer frente ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
pero carece de orden ls -v
. Una solución obvia y trivial es nombrar sus archivos para que, naturalmente, se ordenen en el orden en que desea incluirlos. Si lo desea ls -v
, al menos puede perder la tubería tr
, lo que no logra nada aquí.
Use pdfsam http://www.pdfsam.org/ es muy bueno para dividir y fusionar archivos PDF
Puede usar pdftk para fusionar y modificar documentos PDF en general. Alternativamente, hay un servicio en línea para hacer exactamente eso: http://www.pdfmerge.com/
Aquí está mi enfoque:
Aquí está el resultado:
#!/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'
Simplemente pegue este script en
/home/your_username/.local/share/nautilus/scripts
y asígnele el nombre "merge_pdfs.sh" (por ejemplo). Luego, hágalo ejecutable (haga clic con el botón derecho en merge_pdfs.sh -> pestaña Permisos -> marque "Permitir ejecutar archivo como programa"
Entonces, para fusionar archivos pdf, solo tiene que seleccionarlos -> haga clic con el botón derecho -> scripts -> merge_pdfs.sh y creará un archivo "merged.pdf" en el mismo directorio
¡Espero eso ayude!