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?

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

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

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.


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



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.


2
-1 por sugerir rasterizar uma imagem de vetor (possível). Esse não é o caminho a seguir.
Marco
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.