Crie um pdf a partir de múltiplas imagens (selecionadas)

2

Para converter várias imagens em pdf, esse 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?

    
por cipricus 16.02.2016 / 16:44

2 respostas

0

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.

    
por 16.02.2016 / 18:36
3

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

convert -adjoin *.png out.pdf

Este comando resultará em um arquivo pdf com todas as png images.

    
por 16.02.2016 / 16:54