Como posso mesclar vários .png
arquivos em um arquivo PDF no Unix?
Respostas:
Olhando a documentação do ImageMagick, pode ser tão fácil quanto:
convert 1.png 2.png myfile.pdf
Se isso não funcionar, o PDFjam afirma ser capaz de resolver seu problema.
-quality
opção, mas o tamanho do arquivo é sempre ~ 9,5 MiB.
convert *.jpg file.pdf
-compress jpeg -quality 50
. Veja minha resposta
Se eu quiser mesclar algumas digitalizações em um arquivo PDF, faço o seguinte:
pdfjoin --a4paper --fitpaper false --rotateoversize false scan01.png scan02.png
Isso fornece um documento PDF com tamanho de página DIN-A4, onde cada png
arquivo é centralizado em sua própria página. Imagens muito grandes para uma página DIN-A4 são redimensionadas proporcionalmente para caber em uma página. Imagens menores não são redimensionadas (não aumentadas).
Você deve nomear todos os png
arquivos na linha de comando, mas também pode usar curingas para, por exemplo, mesclar todos os arquivos png no diretório atual:
pdfjoin --a4paper --fitpaper false --rotateoversize false *.png
O pdfjoin
comando faz parte do PDFjam, conforme mencionado na resposta de Jeremiah Willcock. Portanto, você provavelmente terá que instalar um pacote chamado pdfjam
ou texlive-extra-utils
com o gerenciador de pacotes da sua distros. PDFjam é capaz de usar png
arquivos como entrada desde a versão 2.07, lançada em 2013-11-13.
pdfjoin
está disponível no texlive-extra-utils
pacote em algumas plataformas. Você sempre pode instalá-lo a partir da fonte também.
A ferramenta de conversão da ImageMagick é minha preferência.
O programa convert é membro do conjunto de ferramentas ImageMagick. Use-o para converter entre formatos de imagem, bem como redimensionar uma imagem, desfocar, cortar, remover, pontilhar, desenhar, inverter, juntar, fazer uma nova amostra e muito mais.
convert [input-option] input-file [output-option] output-file`
Se você quiser que os arquivos de imagem (e, portanto, sua qualidade e tamanho) sejam alterados, basta colocar um contêiner PDF em torno deles:
convert In.png In-2.png Someother-*.png Result.pdf
No caso de desejar um tamanho de arquivo menor e não houver problemas com a perda de qualidade, você pode primeiro convertê-los para o formato JPEG. (ImageMagick também suporta a alteração do nível de compressão PNG, mas normalmente seus arquivos de entrada já estão usando o nível mais alto.)
convert 1.png 2.png -compress jpeg -quality 50 Result.pdf
Use um valor entre 0 e 100 para a quality
opção.
Como alternativa, você pode obter um tamanho de arquivo (e qualidade) mais baixos, reamostrando as imagens para uma determinada resolução.
convert *.png 2.png -resample 300 Result.pdf
O valor de resample
refere-se ao número de pixels por polegada. ImageMagick lê a densidade original da parte EXIF das imagens de entrada, caindo para 72 dpi. Você pode usar o density
parâmetro para definir uma resolução personalizada para as imagens de entrada.
Pode, claro, também combinar os compress
, quality
e resample
parâmetros.
Eu roubei isso, mas esta é a solução que usei de Jeremiah Willcock e outro site de respostas. Não cavar na história no momento. Eu menti, menti. (Tully @ https://askubuntu.com/a/626301 )
Eu precisava de um arquivo pequeno o suficiente para enviar por e-mail.
Para combinar imagens em um PDF (no diretório de trabalho, use a linha de comando:
user@box:/home/user/scans/:$
convert 1.png 2.png convertoutput.pdf
Para encolher usando o ghostscript após a combinação (eu usei quase no sistema padrão kde):
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
-dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true \
-r150 -sOutputFile=output.pdf convertoutput.pdf
Meu arquivo tinha 14 imagens (19 MB após a conversão, gs aumentou 1,6 MB, a qualidade ainda era ótima). O arquivo de saída é chamado output.pdf
.
-compress jpeg -quality 50
. Veja minha resposta