从多张(选定的)图像中创建一份 pdf

从多张(选定的)图像中创建一份 pdf

要将多个图像转换为 pdf,此脚本将对文件夹内的所有图像执行此操作:

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

但每个图像都会转换为单独的文件。

可以将所有图像转换为一个 PDF 吗?

答案1

您可以使用以下-adjoin选项convert

convert -adjoin *.png out.pdf

此命令将生成一个pdf包含所有图像的文件png

答案2

来源在这里,到从任意一组文档生成 PDF 文件,不仅仅是图像。

从上述来源:

主要原理

当您想从多个文档生成多页 PDF 文件时,您需要执行以下几个步骤:

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.

应根据输入文档的 mimetype 将输入文档转换为临时 PDF 格式:

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, …)

根据输入文档类型,应使用特定工具转换为 PDF:

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

将所有输入文档转换为一些临时 PDF 文件后,将使用 GhostScript 完成最终文档组装。这个强大的工具可以:

merge multiple PDF documents
optimize final file size

对于 Nautilus 和 Gnome,请参阅上述链接的更多详细信息,其中包括更多用于自动化所需流程的脚本。我使用了更有限的方法,因为该解决方案针对 Gnome 和 Nautilus 进行了简化,而我主要使用 KDE 和 Dolphin。

该解决方案给出了问题中要求的结果,但也适用于文本文档和 pdf(图片旁边)并将它们全部合并到最终的 pdf 中。

文件被集成到输出 pdf 中按字母顺序

也可以应用最终的上下文菜单命令到包含所有文件的文件夹被合并。

该解决方案还包括一些图形用户界面特征。

所以:

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

使用gedit或其他文本编辑器:

gedit ~/.config/pdf-generate.conf

并粘贴此:

[general]
compression=95
density=200

因此,如果您想修改任何默认参数,只需在运行该工具之前编辑此文件即可。

负责 PDF 生成 k=job 的主脚本应放置在/usr/local/bin/pdf-generate.有关主脚本的内容,请参阅源链接。 (还这里.)

您可以从命令行安装主脚本及其配置文件:

# 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

要将此 PDF 生成工具完全集成到您的桌面环境中:

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

请参阅 Gnome/Nautilus 集成以及自动下载和安装的链接。一个稍微简化和调整的版本,以满足我的 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;

要获得完整的桌面集成,这个 PDF 生成工具应该是可通过文件管理器上下文菜单中的自定义操作使用

对于 Nautilus,您需要在位于下面的 .desktop 文件中声明新的自定义操作~/.local/share/file-manager/actions(请参阅内容链接)。对于 Dolphin/KDE,它的格式为~/.kde/share/kde4/services/ServiceMenus/.因此,我做了:

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

内容:

[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

重新登录后,选择文件时会出现上下文菜单选项,如源链接中所示。对于我的 KDE/Dolphin 配置,如果所选文件具有相同的扩展名,则这适用于它们。否则,最好的方法是将所有需要的文件放在一个文件夹中,然后从该文件夹的右键单击上下文菜单中执行命令。

在此输入图像描述

在包含 png、jpeg、pdf 和 odt 文件的文件夹上进行测试:

在此输入图像描述

在此输入图像描述

输出文件位于源文件夹中,名称为first_in_alphabetical_order-merged.pdf.

在此输入图像描述

答案3

更新:

我最近在Dolphin中使用的是这个服务菜单:

[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  

正如所说这里。 (要解决文件正确编号的问题,请参阅.)


sudo apt install imagemagick

为文件管理器创建一个上下文菜单,例如 Dolphin 的“服务菜单”;~/.local/share/kservices5/ServiceMenus/IMG_2_PDF.desktop: 4pPtqnJTDYShMf3 [桌面条目] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=image/*;行动=pdf;

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

对于任何支持上下文菜单操作的文件管理器,重要的几行是:

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

确保您不会受到影响ImageMagick 安全策略“PDF”阻止转换


使用 Gthumb(并非所有查看者都可以打印多种的图像到文件):

  • 选择图像,右键单击它们并在 gThumb 中打开它们(它们将显示在文件浏览器中,而不是图像查看器中);

在此输入图像描述

人们甚至可以在创建 pdf 之前重新排列图像!

只需拖放:

在此输入图像描述

  • 要打印它们,请再次选择它们,右键单击它们,选择“打印”;

在此输入图像描述

  • 选择保存文件的位置,然后在打印机列表中选择“打印到文件”。

在此输入图像描述

其他可以将多张图像打印为 pdf 的图像查看器:


(顺便说一句,我也是另一个答案的OP和作者(现已签名user32012):我在某个时候删除了我的帐户,现在我回来了。)

相关内容