Fonte aqui, para Gerar arquivo PDF de qualquer conjunto de documentos , não apenas imagens.
Da fonte acima:
Main principle
When you want to generate a multi-pages PDF file from multiple documents, you need to follow few steps :
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.
Conversion of input documents to temporary PDF format should be done according to their mimetype :
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, …)
Depending on input document types, conversion to PDF should be done using specific tools :
convert (from ImageMagick) for image files unoconv for Libre Office, Microsoft Office and plain text files
Once all input documents are converted to some temporary PDF files, final document assembly is done using GhostScript. This powerful tool allows to :
merge multiple PDF documents optimize final file size
Para o Nautilus e o Gnome, veja mais detalhes no link acima, que inclui mais scripts para automatizar os processos necessários. Eu usei uma abordagem mais limitada, já que a solução é simplificada para o Gnome ad Nautilus e eu uso principalmente o KDE e o Dolphin.
Esta solução fornece os resultados solicitados na pergunta, mas destina-se também a ser aplicada a documentos de texto e pdfs (ao lado de imagens) e a mesclá-los no pdf final.
Os arquivos são integrados na saída pdf em ordem alfabética .
O comando final do menu de contexto também pode ser aplicado na pasta que contém todos os arquivos a serem mesclados.
A solução também inclui alguns recursos da GUI .
Então:
sudo apt-get install imagemagick unoconv ghostscript zenity libfile-mimeinfo-perl
Usando gedit
ou outro editor de texto:
gedit ~/.config/pdf-generate.conf
e cole isto:
[general]
compression=95
density=200
Então, se você quiser modificar qualquer parâmetro padrão, basta editar esse arquivo antes de executar a ferramenta.
O script principal responsável pela geração de 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ém aqui .)
Você pode instalar o script principal e seu arquivo de configuração a partir da 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 essa ferramenta de geração de PDF em seu ambiente de área de trabalho:
gedit /usr/share/applications/pdf-generate.desktop.
Veja o link para integração do Gnome / Nautilus e download e instalação automatizados. Uma versão ligeiramente simplificada e ajustada para as 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 da área de trabalho, essa ferramenta de geração de PDF deve estar disponí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 sob ~/.local/share/file-manager/actions
(veja o link para o conteúdo). Para o Dolphin / KDE está em ~/.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 novo login, uma opção do menu de contexto aparece ao selecionar 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 depois executar o comando no menu de contexto do botão direito da pasta.
Testeemumapastacontendoumpng,umjpeg,umarquivopdfeumarquivoodt:
Oarquivodesaídaestánapastadeorigem,comonomefirst_in_alphabetical_order-merged.pdf
.