Existem muitos softwares no Windows para mesclar arquivos PDF, mas como podemos fazer o mesmo no Ubuntu?
Existem muitos softwares no Windows para mesclar arquivos PDF, mas como podemos fazer o mesmo no Ubuntu?
Respostas:
Se você deseja uma ferramenta com uma GUI simples, tente o pdfshuffler . Permite mesclar PDFs, bem como reorganizar e excluir páginas. Para processamento em lote e / ou tarefas mais complicadas, o pdftk é obviamente mais poderoso.
pdfshuffler
funciona bem em 14.04 amd64.
Para mesclar dois arquivos pdf file1.pdf
e file2.pdf
:
pdftk file1.pdf file2.pdf cat output mergedfile.pdf
Mais informações disponíveis aqui Máquina Way Back .
cat
e output
seguem argumentos de entrada variados e seguidos novamente por um argumento de saída.
Ghostscript é um pacote (disponível por padrão no Ubuntu) que permite exibir ou imprimir arquivos PostScript e PDF em outros formatos ou converter esses arquivos em outros formatos.
Para usar o Ghostscript para combinar arquivos PDF, digite algo como o seguinte:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/None -sOutputFile=finished.pdf file1.pdf file2.pdf
Aqui está uma breve explicação do 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.
Seus arquivos de entrada nem precisam ser arquivos PDF. Você também pode usar arquivos PostScript ou EPS, ou qualquer mistura dos três.
Há muita coisa que você pode fazer com o Ghostscript. Você pode ler a documentação para obter mais detalhes.
pdftk
levou 0m0,484s, gs
levou 1m32,898s (que é quase 200x mais lento) O arquivo gs
era cerca de 21% menor.
file1.pdf file2.pdf
porfile*.pdf
gs
trabalhei com alguns PDFs "não conformes", onde pdftk
seriam executados para sempre.
-dPDFSETTINGS=/prepress
opção de melhoria da qualidade. Tudo graças devido ao original contribuinte
file*.pdf
com file1.pdf file2.pdf
antes de passar os argumentos para o comando.
Você também usa o pdfunite para mesclar documentos em pdf:
pdfunite in-1.pdf in-2.pdf in-n.pdf out.pdf
out.pdf
será substituído sem aviso, portanto pdfunite *.pdf
não funcionará conforme o esperado.
cp
também substitui o último argumento sem aviso. Este é apenas para apressar usuários (como eu) - Eu tive sorte eu tinha um backup do arquivo em questão ...
Uma solução muito boa é o PDFChain. É GUI é um frontend do PDFTK onde você pode mesclar, dividir ou até adicionar um pouco de fundo aos seus arquivos PDF.
apt
também não deu resultados: /
Uma abordagem alternativa é usar o Latex, conforme explicado nesta postagem ( sem acesso root, assumindo que você tenha o pdflatex instalado): https://tex.stackexchange.com/questions/8662/merge-two-pdf-files-output-by- látex
Isso é útil caso você não possua as ferramentas mencionadas nem os privilégios de root, mas o pdflatex.
Copio o código tex abaixo para mesclar file1.pdf
e file2.pdf
. Crie um arquivo chamado output.tex
e coloque:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}
E para compilar, basta usar: pdflatex output.tex
O arquivo mesclado será nomeado como output.pdf
.
Eu uso o pdfseparate para extrair páginas específicas de um grande arquivo pdf:
pdfseparate -f 156 -l 157 input.pdf output_%d.pdf
pdfseparate -f 1 -l 2 input.pdf output_%d.pdf
e depois eu junto todos eles via comando:
pdfunite $(ls -v output_*.pdf | tr '\n' ' ') out$(date +%Y-%m-%d_%H_%M_%S ).pdf
Isso se junta a:
output_1.pdf output_2.pdf output_156.pdf output_157.pdf
para dentro:
out2014-12-14_23_25_36.pdf
Pode haver uma maneira mais fácil de como lidar ... :-)
pdfunite output_*.pdf out$(date +%Y-%m-%d-%H_%M_%S).pdf
mas falta a ordem de ls -v
. Uma correção óbvia e trivial é nomear seus arquivos para que eles sejam classificados naturalmente na ordem em que você deseja incluí-los. Se você absolutamente quiser ls -v
, pode pelo menos perder o cachimbo tr
, o que não realiza nada aqui.
Use pdfsam http://www.pdfsam.org/ é muito bom para dividir e mesclar pdfs
Você pode usar o pdftk para mesclar e modificar documentos PDF em geral. Como alternativa, existe um serviço online para fazer exatamente isso: http://www.pdfmerge.com/
Aqui está a minha abordagem:
Aqui está o 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'
Juste cole este script em
/home/your_username/.local/share/nautilus/scripts
e chame-o de "merge_pdfs.sh" (por exemplo). Em seguida, torne-o executável (clique com o botão direito do mouse em merge_pdfs.sh -> guia Permissões -> marque "Permitir a execução de arquivo como um programa"
Agora, para mesclar arquivos PDF, basta selecioná-los -> clique com o botão direito -> scripts -> merge_pdfs.sh e ele criará um arquivo "merged.pdf" no mesmo diretório
Espero que ajude!