使用 Ghostscript 合併 pdf 檔案:是否可以將 find 輸出透過管道傳輸到 gs?

使用 Ghostscript 合併 pdf 檔案:是否可以將 find 輸出透過管道傳輸到 gs?

我想將多個 pdf 檔案合併為一個。成立這個很好的答案就這樣,但是這裡有一個問題。我的 pdf 不在同一目錄中,所以本質上我想進行一次find調用並將輸出通過管道傳輸到gs,如下所示:

find . -path "*_somedir/*" -name "some.pdf" -print0 | gs ...

我已經檢查了手冊頁,gs但沒有關於空終止參數的信息,所以我不確定如何將參數從findto傳遞gs。我假設如果我跳過 -print0 標誌,它將gs在第一個參數之後運行呼叫。

有任何想法嗎?我當然願意接受其他合併 pdf 的方法,但我想避免安裝新的軟體包,因為這是在社群伺服器上完成的。

答案1

一種方法是假設 GNUfind(1)和 GNU xargs(1)

find /some/dir -type f -name '*.pdf' -print0 | \
    xargs -0 gs -q -dNOPAUSE -sDEVICE=pdfwrite -dBATCH -sOUTPUTFILE=out.pdf

然而,PDF 是一個複雜的龐然大物。預計由此產生的結果好壞參半。

相關內容