web-dev-qa-db-ja.com

フォルダーの各PDFファイルから最初の10ページを抽出する方法

1つのフォルダーに90個のサブフォルダーがあります。各サブフォルダーにはpdfファイルが含まれています。合計pdfファイルはほぼ2200です。すべてのpdfからページ番号3〜10を抽出するにはどうすればよいですか。

1つのPDFからページを抽出するには、次のコマンドを使用しています。

pdftk *.pdf cat 3-10 output 3-10.pdf
5
info-farmer

この1ライナー(読みやすくするために2行に分割)がテストされ、私のシステムでうまく機能します:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "${0%.pdf}_3-10.pdf"' {} \;

基本フォルダー(すべてのサブフォルダーを含むフォルダー)でターミナルウィンドウを開き、上記の1行のコマンド全体をコピーして貼り付けます。そうなる:

  1. すべてのサブフォルダーをトラバースし、すべてのPDFを識別します
  2. それぞれから3〜10ページを抽出します(コマンド例を使用)。
  3. sensible出力ファイル名を与える:_3-10が追加された元の名前

そして、これはあなたの目的をきちんと経済的に達成するはずです...

バリエーション:

オプションで、different出力場所を指定して、変更されたすべてのpdfドキュメントを収集できます。たとえば、~/extractedというフォルダーを作成し、上記のコマンドラインを次のように変更できます。

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "~/extracted/${0%.pdf}_3-10.pdf"' {} \;

したがって、変更されたpdfファイルはすべて~/extractedに表示されます。

限りない可能性 :)。

5
andrew.46

Pdftkはubuntu bionicではデフォルトで利用できなくなったため、qpdfを使用できます。find . -name '*.pdf' -type f -exec bash -c 'qpdf --empty --pages "$0" 3-10 -- "temp/${0%.pdf}_1.pdf"' {} \;

これにより、新しいPDFが一時フォルダーに配置されます。

1
SaTa