2010-11-20 111 views
6

如何使用ls和轉換將目錄中的所有圖像文件轉換爲pdf? 另外我需要把文件按照一定順序放置,例如AA1.png,AA11.png等文件需要遵守這個邏輯順序。Bash轉換爲pdf

更新(ls)和(轉換)可用,但我怎樣才能將它們一起使用?

+0

你的意思是獨立的PDF或單一的PDF? – Orbling 2010-11-20 18:04:55

+0

我需要一個pdf – danidacar 2010-11-20 18:08:58

回答

7

要轉換成單一的PDF可以在單個命令來完成:

convert -compress jpeg *.jpg my-jpegs.pdf 

請記住,包括-compress jpeg標誌,否則將存儲圖像解壓縮並導致大規模的PDF。

ImageMagick(通過轉換)需要安裝Ghostscript(gs)才能處理我相信的PDF。如果您一次添加大量JPEG,請注意內存問題。

至於您的邏輯順序,您可以使用ls結合convert按順序獲取列表。

線沿線的東西:

convert -compress jpeg `ls *.png` my-jpegs.pdf 

可用的各種排序選項見ls --help

+0

好的提示,但排序順序是問題。 – danidacar 2010-11-20 18:12:07

+0

對,我爲你的排序問題增加了更多。 – Orbling 2010-11-20 18:20:21

+0

反引號中的'ls'本身並沒有做任何有用的事情。但是,如果您添加了有用的排序選項,則可能會有所保證。 – tripleee 2011-08-24 07:28:54

0
for image in `ls *.png`; do 
    # call convert or whatever here 
    convert $image `basename $image .png`.pdf 
done 
+0

我需要一個pdf文件,其中包含所有圖像按名稱排序(邏輯順序image1.png,image2.png,... image11.png) – danidacar 2010-11-20 18:18:46

+1

反引號中的'ls'是一個反模式。 '用於* .png的圖像;做...'既簡單又更正確。 – tripleee 2011-08-24 07:27:59

4

https://gitlab.mister-muffin.de/josch/img2pdf

在所有涉及的ImageMagick提出的解決方案(即convert)中,JPEG數據被完全解碼和重新編碼。這導致generation loss以及比img2pdf更糟糕的表現「十到一百倍」。

+0

我無法在此代碼上看到許可證。你自己寫了嗎?它是麻省理工學院,GPL等? – Orbling 2013-05-14 19:22:05

+0

我沒有寫這個。如果您想與他聯繫,其作者的電子郵件地址將隱藏在他的test_comp.sh中。 – 2013-05-14 21:00:35

+0

不是特別的,只是認爲它通常沒有許可證就無法使用。這是一個恥辱,因爲它無疑是有用的。 – Orbling 2013-05-14 21:16:07

1

如果你有很多文件:

convert -limit memory 1 -limit map 1 *.jpg foo.pdf 

see here

或壓縮

convert -limit memory 1 -limit map 1 -compress jpeg -quality 85 *.jpg foo.pdf