簡體   English   中英

用於合並 pdf 內文件夾中的所有圖像文件的腳本

[英]Script to merge all image files from a folder inside a pdf

我經常需要在 pdf 中合並很多圖像。 自然,我想自動化一點。 這是我需要的東西:

  • 無損合並到 pdf
  • 合並最常見的圖像格式
  • 數字的自然排序( 1.jpg2.jpg10.jpg將按此順序合並,而不是1.jpg 10.jpg 2.jpg
  • 可以處理文件名中的空格

我遇到了一個與我需要的完全一樣的解決方案,但是對於名稱中包含空格的文件,它會失敗。

#!/bin/bash
convert `ls -v *.jpg *.jpeg *.JPG *.JPEG *.png *.PNG *.gif *.GIF *.tiff *.TIFF *.webp *.WEBP *.bmp *.BMP` compilation_images.pdf

在 shell 腳本方面,我完全是個菜鳥,所以如果我沒有看到一個簡單的解決方案,我提前道歉,但我自己找不到任何解決方案。

謝謝你的幫助。

正如您所發現的,嘗試解析ls是錯誤的。 假設您使用的是 GNU 版本的實用程序,因為 linux 標記通常暗示,請嘗試以下操作:

#!/usr/bin/env bash

# Turn on case-insensitive globs and make ones that
# don't match anything expand to nothing
shopt -s nocaseglob nullglob

readarray -d '' -t images < <(printf "%s\0" *.jpg *.jpeg *.png *.gif *.tiff *.webp *.bmp | sort -Vz)
convert "${images[@]}" compilation_images.pdf

它使用用 nul 字符分隔文件名的常見技巧,以便在使用排序的文件名填充bash數組時安全地處理空格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM