2009-08-09 9 views
5

私はXウェブサイトからpdfsを保存したいと思って、すべてのpdfsを一つにまとめるので、一度にすべてを見るのは簡単です。私が何をしたかスクリプトを使用してLinuxで複数のpdfsを結合しますか?

  1. ウェブサイト

    のwget -r -l1 -A.pdf --no-親http://linktoX

  2. からPDFを取得する1

    にpdfファイルを結合

    gs -dNOPAUSE -sDEVICE = pdfwrite -sOUTPUTFILE = Combined_ date +%F .pdf -dBATCH file1.pdf file2.pdf file3.pdf

私の質問/問題は、私はこれをすべて1つのスクリプトで自動化することを考えたので、毎日これをする必要はありません。ここでは、新しいPDFは、どのように私は、すべてのPDFファイルの完全なリストを与えることなく、私はSTEP2でfile*.pdfをやってみました、上記のステップ2を行うことができます、だから、X.

に毎日追加されています。すべてのpdfsをランダムな順序で組み合わせました。 ...

次の問題は、ファイル*のPDFファイルの総数が、時には5つのpdfファイル、時には10と同じ日常ではありません、です...しかし、良いところは、それが注文file1.pdfのfile2.pdfで命名されている

ですから、上記の手順2を完了するためには、すべてのpdfファイルを順番に組み合わせる必要があり、各pdfの名前を明示的に指定する必要はありません。

ありがとうございます。

UPDATE: これはfile1.pdfはちょうどfile20を置く-t LSをやって...ように最初にダウンロードした後、file2.pdfとされたとして、私は-rt LSをした

pdftk `ls -rt kanti*.pdf` cat output Kanti.pdf 

問題を解決しました。 pdfファイルが最後に...

答えて

3

過去にpdftkを使用しても良い結果が得られました。

番号順にファイルをリストするために、あなたが最初の$ nは無視するように並べ替えを指示することができます - これを行うことにより、ファイル名の1文字を:

ls | sort -n -k 1.$n 

ですから、ファイル*の.PDFを持っていた場合

$ ls | sort -n -k 1.5 
file1.pdf 
file2.pdf 
file3.pdf 
file4.pdf 
file10.pdf 
file11.pdf 
file20.pdf 
file21.pdf 
2

私はpdftkを使用しています。そのような連結の場合、pdftkはDebian/Ubuntuですぐに利用できます。

+0

私はpdfsを注文したいと思っています。 * .pdfを使用すると、ランダムな順序で結合されます...私はこの順序でfile1.pdf ... file9.pdf file10.pdf file11.pdfなどを組み合わせたいと思います。 –

1

あなたのような何かを行うことができます:これは、ファイルが "file.pdf" と命名されていると仮定している

GSCOMMAND="gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Combined_date +%F.pdf -dBATCH" 
FILES=`ls file*.pdf | sort -n -k 1.5` 

$GSCOMMAND $FILES 

を。 albergeによる投稿も参照してください。

名前にスペースが含まれているファイルには奇妙なことが起きるので、名前をスペースで処理できるようにする必要がある場合は、エスケープを追加する必要があります。

私は他の人が、これは私には非常に迅速かつ汚いソリューションを思わとして、思い付くが、他の人の答えに、より良い感謝を取得:)

EDIT

どうなるか本当に興味

albergeが提案したFILESの数値ソートコマンドを使用しました。

関連する問題