Crie um PDF a partir de várias imagens (selecionadas)

Crie um PDF a partir de várias imagens (selecionadas)

Para converter várias imagens em PDF, este script fará isso para todas as imagens dentro de uma pasta:

#!/bin/bash
#
for f in *.png; do
  convert ./"$f" ./"${f%.png}.pdf"
done

Mas cada imagem é convertida em um arquivo separado.

Todas as imagens podem ser convertidas em um único PDF?

Responder1

Você pode usar a -adjoinopção de convert:

convert -adjoin *.png out.pdf

Este comando resultará em um pdfarquivo com todas as pngimagens.

Responder2

Fonteaqui, paraGere arquivo PDF a partir de qualquer conjunto de documentos, não apenas imagens.

Da fonte acima:

Princípio principal

Quando você deseja gerar um arquivo PDF de várias páginas a partir de vários documentos, você precisa seguir alguns passos:

Sort of all input documents in alphabetical order
Convert them to some temporary PDF files
Assemble all temporary PDF documents to a final multi-pages PDF document.

A conversão dos documentos de entrada para o formato PDF temporário deve ser feita de acordo com seu tipo MIME:

Image files (jpg, png, tiff, …)
Plain text files (txt)
Libre Office & Open Office documents (odt, ods, …)
Microsoft Office files (doc, docx, xls, xlsx, ppt, pptx, …)

Dependendo dos tipos de documentos de entrada, a conversão para PDF deve ser feita utilizando ferramentas específicas:

convert (from ImageMagick) for image files
unoconv for Libre Office, Microsoft Office and plain text files

Depois que todos os documentos de entrada forem convertidos em alguns arquivos PDF temporários, a montagem final do documento é feita usando GhostScript. Esta poderosa ferramenta permite:

merge multiple PDF documents
optimize final file size

Para Nautilus e Gnome veja mais detalhes no link acima, que inclui mais scripts para automatizar os processos necessários. Usei uma abordagem mais limitada, pois a solução é simplificada para Gnome ad Nautilus e uso principalmente KDE e Dolphin.

Esta solução fornece os resultados solicitados na questão, mas também se destina a ser aplicada adocumentos de texto e PDFs (além das imagens)e fundi-los todos no PDF final.

Os arquivos são integrados ao pdf de saídaem ordem alfabética.

O comando final do menu de contexto também pode ser aplicadopara a pasta que contém todos os arquivosa ser mesclado.

A solução também inclui algunsGUIcaracterísticas.

Então:

sudo apt-get install imagemagick unoconv ghostscript zenity libfile-mimeinfo-perl

Usando geditou outro editor de texto:

gedit ~/.config/pdf-generate.conf

E cole isto:

[general]
compression=95
density=200

Portanto, se você quiser modificar algum parâmetro padrão, basta editar este arquivo antes de executar a ferramenta.

O script principal responsável pela geração do PDF k=job deve ser colocado em /usr/local/bin/pdf-generate. Veja o link da fonte para o conteúdo do script principal. (Tambémaqui.)

Você pode instalar o script principal e seu arquivo de configuração na linha de comando:

# mkdir --parents $HOME/.config
# wget --header='Accept-Encoding:none' -O $HOME/.config/pdf-generate.conf https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/pdf/pdf-generate.conf
# sudo wget --header='Accept-Encoding:none' -O /usr/local/bin/pdf-generate https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/pdf/pdf-generate
# sudo chmod +x /usr/local/bin/pdf-generate

Para integrar totalmente esta ferramenta de geração de PDF em seu ambiente de desktop:

gedit /usr/share/applications/pdf-generate.desktop.

Veja o link para integração Gnome/Nautilus e download e instalação automatizados. Uma versão ligeiramente simplificada e ajustada às minhas necessidades do KDE:

    [Desktop Entry]
Type=Application
Exec=pdf-generate
Hidden=false
NoDisplay=false
Icon=pdf
Keywords=pdf;generate;image;office;document;merge
StartupNotify=true
Name[en_US]=Generate PDF document
Name[en]=Generate PDF document
Name[C]=Generate PDF document
Name[fr_FR]=Génération d'un PDF
Comment=Tool to merge a set of documents to a PDF file.
Comment[en_US]=Tool to merge a set of documents to a PDF file.
Comment[fr_FR]=Outil de concaténation de documents en un fichier PDF.
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;application/pdf;application/x-pdf;application/x-bzpdf;application/x-gzpdf;application/msword;application/vnd.ms-word;application/vnd.oasis.opendocument.text;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;text/plain;
Categories=GNOME;GTK;Graphics;Conversion;Utility;

Para obter uma integração completa com o desktop, esta ferramenta de geração de PDF deve serdisponível em uma ação personalizada no menu de contexto do gerenciador de arquivos.

Para o Nautilus, você precisa declarar a nova ação personalizada em um arquivo .desktop colocado em ~/.local/share/file-manager/actions(veja o link para conteúdo). Para Dolphin/KDE ele está no formato ~/.kde/share/kde4/services/ServiceMenus/. Portanto, eu fiz:

gedit ~/.kde/share/kde4/services/ServiceMenus/pdf-generate.desktop

com o conteúdo:

[Desktop Entry]
Actions=pdf-generate
Encoding=UTF8
Icon=pdf
MimeType=MimeTypes=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;application/pdf;application/x-pdf;application/x-bzpdf;application/x-gzpdf;application/msword;application/vnd.ms-word;application/vnd.oasis.opendocument.text;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;text/plain;inode/directory;application/pdf
ServiceTypes=KonqPopupMenu/Plugin
Type=Service


[Desktop Action pdf-generate]
Exec=pdf-generate %F
Icon=pdf
Name=Create pdf file

Após o login novamente, uma opção de menu de contexto aparece ao selecionar os arquivos, conforme indicado no link da fonte. Para minha configuração do KDE/Dolphin, isso funciona para arquivos selecionados se eles tiverem a mesma extensão. Caso contrário, a melhor maneira é colocar todos os arquivos necessários em uma pasta e executar o comando no menu de contexto do botão direito dessa pasta.

insira a descrição da imagem aqui

Testando em uma pasta contendo um arquivo png, jpeg, pdf e odt:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

O arquivo de saída está na pasta de origem, com o nome first_in_alphabetical_order-merged.pdf.

insira a descrição da imagem aqui

Responder3

Atualizada:

O que usei mais recentemente no Dolphin é este menu de serviço:

[Desktop Entry]
Type=Service
Actions=image2pdf
Icon=application-pdf
Encoding=UTF-8
TryExec=img2pdf
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/*

[Desktop Action image2pdf]
Exec=konsole -e img2pdf %F -o out.pdf
Icon=application-pdf
Name=Convert selected image(s) into single pdf  

como disseaqui. (Para corrigir problemas com a numeração adequada dos arquivos, consulteesse.)


sudo apt install imagemagick

Crie um menu de contexto para o gerenciador de arquivos, por exemplo um “Menu de Serviço” para o Dolphin; ~/.local/share/kservices5/ServiceMenus/IMG_2_PDF.desktop: 4pPtqnJTDYShMf3 [Entrada na área de trabalho] Type=Serviço ServiceTypes=KonqPopupMenu/Plugin MimeType=imagem/*; Ações=pdf;

[Desktop Action pdf]
Name=Create PDF from images
Icon=application-pdf
Exec=bash -c 'convert %F  out.pdf'

Para qualquer gerenciador de arquivos que suporte ações de menu de contexto, as linhas importantes são:

MimeType=image/*;
Exec=bash -c 'convert %F out.pdf'

Certifique-se de não ser afetado peloPolítica de segurança do ImageMagick 'PDF' bloqueando a conversão.


Usando Gthumb (nem todos os visualizadores podem imprimirmúltiploimagens para arquivo):

  • selecione as imagens, clique com o botão direito e abra todas no gThumb (elas serão exibidas como em um navegador de arquivos, não no visualizador de imagens);

insira a descrição da imagem aqui

Pode-se até reorganizar as imagens antes de criar o pdf!

Basta arrastar e soltar:

insira a descrição da imagem aqui

  • para imprimi-los selecione-os novamente, clique com o botão direito sobre eles, selecione "Imprimir";

insira a descrição da imagem aqui

  • selecione o local onde salvar o arquivo e na lista de impressoras selecione "Imprimir em arquivo".

insira a descrição da imagem aqui

Outros visualizadores de imagens que podem imprimir várias imagens em PDF:


(A propósito, também sou o OP e autor de outra resposta (agora assinada user32012): excluí minha conta em algum momento e agora estou de volta.)

informação relacionada