Converter um diretório de arquivos JPEG em um único documento PDF

242

Eu tenho muitos arquivos JPEG em um diretório e quero convertê-los em PDF e concatená-los juntos para criar um único documento.

Como isso pode ser feito?

Eu preferiria usar a linha de comando, pois esse processo será mais rápido.

lovespeed
fonte

Respostas:

358

No imagemagickpacote, use o convertcomando:

convert *.jpg pictures.pdf

Você receberá um único pdf contendo todos os jpg na pasta atual.

Instale o IM com:

sudo apt-get install imagemagick

fonte: stackoverflow

Editar: Observe que as imagens ficarão fora de ordem específica se não estiverem numeradas. se você tiver 10 ou mais, precisará nomeá-los terminando filename01.jpg ... filename99.jpg etc. Os zeros à esquerda são necessários para a ordem correta. Se você tiver 100 ou mais 001 ... 999.

rosch
fonte
1
Usar o curinga não funcionou para mim, tive que usar a solução do @ Alex.
Eusébio
2
@Eusebius se o curinga não funcionar para você com o convert, você pode usar um oneliner como:for f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek
1
GrphicMagickos usuários devem executargm convert *.jpg pictures.pdf
michaelbn 16/01
Talvez meus arquivos jpg sejam muito grandes e numerosos, mas fazer isso consumiu quase imediatamente tanta RAM que meu sistema de 16 GB começou a ser trocado.
RonJohn
8
Observe que esse método agora pode resultar em um not authorizederro; veja esta pergunta relacionada (e respostas) .
Jani Uusitalo 16/04
31
convert `ls -1v` file.pdf
  • Isto irá listar um arquivo por vez em uma "ordem natural" (1,2,3 ...) e prosseguir com a conversão.
Alex
fonte
1
Eu tentei isso e não funcionou para mim. numerosos erros indicam que isso pode ter algo a ver com espaços nos nomes de arquivos.
Elder Geek
5
Para cuidar do problema de espaços, execute primeiro uma substituição de padrão: para ThisFile em * .jpg; do mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2> & 1; d
Simon Mattes
20

Trabalhou para mim (MAS o aviso! Desativa a compactação e o PDF resultante será grande!):

convert page1.jpg page2.jpg +compress file.pdf

ou até:

convert -rotate 90 page\*.jpg +compress file.pdf

De ubuntuforums.org, a +compressajuda-lo a não pendurar. NOTA: a compactação + desativa a compactação. A máquina em que eu estava trabalhando na época parecia travar "para sempre" (não esperei muito para descobrir) sem a opção + compactar. Sua milhagem pode variar bastante! RTFM na opção imagemagick.org -compress , talvez experimente com -compress <type> se você tiver problemas lentos de compactação / interrupção para descobrir o que funcionará para você.

gaoithe
fonte
13
NÃO use a +compressopção com o convertcomando conforme sugerido acima! Na verdade, desativa toda a compactação, deixando um PDF 10 vezes maior que o JPEG original. Apenas não especifique as opções de compactação e convertusará o formato de compactação de entrada (JPEG), que neste caso é o melhor tamanho de arquivo de opção. Fonte: http://www.imagemagick.org/script/command-line-options.php#compress
Isso não é intuitivo! Obrigado S Minddal. Isso funcionou para mim. Presumo que a máquina que estava usando teve um problema ao fazer a compactação. Eu ajustarei a resposta.
gaoithe
2
por isso $ converet *.jpg file.pdffuncionou bem com tamanho de arquivo menor do que com +compressargumento
doutorado
18

Infelizmente, convertaltera a qualidade da imagem antes de "compactá-la" no PDF. Portanto, para ter uma perda mínima de qualidade, é melhor colocar o original jpgno PDF, você precisa usá-lo img2pdf.

Eu uso estes comandos:

  1. Este comando é criar um pdfarquivo de cada jpgimagem sem perda de resolução ou qualidade:

    ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {} .pdf

  2. Este comando concatenará as pdfpáginas em um documento:

    pdftk * .pdf saída de gato combinada.pdf

  3. E, finalmente, adiciono uma camada de texto com OCR que não altera a qualidade da digitalização nos PDFs, para que possam ser pesquisados:

    pypdfocr combinado.pdf

    Uma alternativa ao uso pypdfocr:

    ocrmypdf combinado.pdf combinado_ocr.pdf

Eduard Florinescu
fonte
1
Ótimo método! A única desvantagem sem compactação seria que o tamanho do arquivo .pdf resultante será muito alto (ou seja, um pouco maior que todas as fotos combinadas). Mas vale a pena se o documento que você está convertendo é realmente importante!
Gokul NC
1
Isso funcionou bem depois de convertfalhar com "tentativa de executar uma operação não permitida pela política de segurança` PDF '".
Matthias Braun
12

Abra o arquivo jpg ou png com o LibreOffice Writer e exporte como PDF.

Espero que seja uma maneira simples de exportar pdf.

user359154
fonte
Sim! O LibreOffice é a melhor maneira de exportar arquivos de imagem para PDF. Temos controle total da saída do PDF, incluindo layout de página, redimensionamento de arquivos importados, cabeçalhos e rodapés opcionais e muito mais ... Muito obrigado a user359154 pela sugestão inteligente!
8

A solução a seguir também conta com o ImageMagick, convertmas é um pouco mais sofisticada porque:

  • Permite que todas as imagens tenham dimensões diferentes, mantendo o mesmo tamanho da página PDF de saída (A4 no exemplo abaixo).
  • Centraliza as imagens na página PDF.
  • Permite garantir um espaço mínimo entre as margens da imagem e as margens da página PDF, para permitir a impressão do PDF sem problemas.
  • Não altera os dados da imagem. (Portanto, a qualidade da imagem não é afetada, o arquivo PDF tem aproximadamente o mesmo tamanho da imagem e você pode extrair as imagens originais posteriormente com pdfimages -j file.pdf img.) No momento, isso funciona apenas com PNG - veja o comentário de @dma_k abaixo .

Instruções:

  1. Use meu script desta resposta para converter cada imagem em seu próprio arquivo PDF de uma página com tamanho de página A4 e borda de 5% ao redor.
  2. Concatene todos os seus arquivos PDF de uma página com o PDFtk da seguinte maneira:

    pdftk *.pdf cat output out.pdf
    
tanius
fonte
2
Este comando mostra que (pelo menos com as versões fornecidas no Ubuntu 16.04) os dados da imagem são afetados:convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg
Stéphane Gourichon
2
Eu estava brincando com o GraphicsMagick e notei que ele executa a recompressão de imagem . A qualidade da imagem JPEG resultante na página PDF é muito pior. Portanto, no momento, a maneira mais segura é adicionar imagens PNG - elas são inseridas corretamente. Veja este post também.
dma_k
-3

Usei http://convert-my-image.com/ A coisa positiva que você pode fornecer (no mesmo site, mas em uma página diferente) de um arquivo de imagens e concatená-las no pdf comum

Alen
fonte
3
Essa sugestão tem pelo menos três problemas: (1) será lenta, devido ao upload das imagens no site e ao download do PDF resultante; (2) expõe seus dados a quem administra esse site, a qualquer pessoa que possa ter violado esse site e a qualquer pessoa que esteja no ar; (3) não é uma solução de linha de comando.
Sampablokuper