從多個(選定的)圖像中創建一個 pdf
要將多個圖像轉換為 pdf,此腳本將對文件夾中的所有圖像執行此操作:
#!/bin/bash # for f in *.png; do convert ./"$f" ./"${f%.png}.pdf" done
但是每個圖像都被轉換成一個單獨的文件。
所有圖像都可以轉換成一個 pdf 文件嗎?
來源在這裡,從任何文件集生成 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中。
最後的上下文菜單命令也可以應用於包含所有要合併的文件的文件夾。
該解決方案還包括一些GUI功能。
所以:
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
.
您可以使用以下
-adjoin
選項convert
:convert -adjoin *.png out.pdf
此命令將生成一個
png
圖像的文件。