若要將多個影像轉換為 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
):我在某個時候刪除了我的帳戶,現在我回來了。)