從多張(選定的)影像中建立一份 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):我在某個時候刪除了我的帳戶,現在我回來了。)

相關內容