Como mesclar pdf: s usando o Imagemagick (problema de resolução)

43

Quando tento mesclar dois arquivos .pdf usando o Imagemagick

convert pdf1.pdf pdf2.pdf temp.pdf

o arquivo temp.pdf resultante parece ter uma resolução muito baixa. Como posso manter a resolução igual à dos arquivos de origem?


fonte

Respostas:

53

Barns está certo, mas se o pdftk não funcionar, tente o ghostscript.

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf pdf1.pdf pdf2.pdf

fonte
Funcionou perfeitamente e com rapidez também - muito mais rápido do que usar o ImageMagick com o sinalizador -density.
Brionius
Essa deve ser a resposta correta. Não que o ImageMagick não funcione; isso também funciona. Mas como o @Brionius observou, o gs é muito mais rápido e a qualidade do pdf resultante é de primeira qualidade.
Jagtesh Chadha
Observe que você pode usar * .pdf em vez da lista de pdf1.pdf e pdf2.pdf no final deste comando para converter todo o pdf em uma pasta em um único pdf.
Colin D
Eu tive alguns problemas com a fonte, algumas páginas perdem a fonte. Existe uma maneira de escolher?
Zloy Smiertniy
20

O comando converter do Imagemagick é normalmente usado para converter arquivos de imagem de um formato para outro e, nesse caso, é possível que ele esteja realizando uma espécie de conversão interna antes de gerar as duas "imagens" (PDFs) em um único arquivo.

Eu sugiro que você considere usar o PDF Toolkit (pdftk) em vez http://www.accesspdf.com/pdftk/

A partir dos exemplos no site, isso deve ser tão simples quanto:

pdftk pdf1.pdf pdf2.pdf cat output temp.pdf
Richard
fonte
Estou executando o OS X 10.6.1 e tentei instalar o pdftk via Macports. Parece que o pdftk está obsoleto no Mac, a instalação não foi concluída. Então, eu tentei fazer isso usando o Imagemagick.
No Ubuntu, o pdftk não era um problema para instalar no apt, e fez o truque de forma gloriosa. Eu usei o ImageMagick para costurar PDFs antes com grande sucesso, mas como ele rasteriza primeiro os PDFs (compreensivelmente - não funciona com vetores), não parece tão bom para a maioria dos documentos de texto. Mas o pdftk funcionou muito bem - obrigado pela sugestão.
Iguananaut 03/03
Ótimo ... obrigado
Dan Ortega
Vamos votar novamente, o pdftk funciona muito melhor do que o ghostcript fazendo isso.
Dan Ortega
18

Se todos os arquivos que você deseja mesclar estiverem na mesma pasta:

convert -density 150 $(ls -rt *pdf) output.pdf

o argumento -density 150mantém a qualidade dos PDFs mesclados.

juda
fonte
5
Uma nota no seu todo sintaxe PDF, você pode omitir o comando sub-ls:convert -density 150 *.pdf output.pdf
Josh
'* .pdf' e '$ (ls -rt * pdf)' podem resultar em resultados diferentes.
Shantanoo 31/08/19
8

Eu sempre esqueço como fazer isso e encontro essa pergunta primeiro quando procuro.

convert -density 600 file1.pdf file2.pdf -resize 50% new.pdf

O exemplo vinculado tem a densidade em 144, no entanto, que nunca foi alta o suficiente para não aparecer pixelizada.

http://web.archive.org/web/20130311071316/http://studio.imagemagick.org/pipermail/magick-users/2009-September/022958.html

Leslie Pajuelo
fonte
Desculpe, o link está morto agora.
Sablefoste
0

Não consegui encontrar nenhuma maneira de unir dois arquivos pdf, mantendo a resolução boa e o texto intacto, mas descobri uma maneira de convertê-lo em um arquivo png de alta resolução.

pdftoppm -f 1 -l 1 -aa yes -aaVector yes -png -r 300 page.pdf > tmp1.png
pdftoppm -f 2 -l 2 -aa yes -aaVector yes -png -r 300 page.pdf > tmp2.png
convert tmp1.png tmp2.png +append -quality 100 page.png

Isso leva para as duas primeiras páginas do page.pdf e as une em um arquivo png de alta resolução lado a lado.

Alterando a última linha para

convert tmp1.png tmp2.png +append -quality 100 page.pdf

resultará em uma saída de documento em PDF, como eu descobri depois de brincar com pngtopnm, pnmtops, ps2pdf.

Barry Dmytro
fonte
2
-1 por sugerir rasterizar uma imagem de vetor (possível). Esse não é o caminho a seguir.
Marco