PDFから重複ページを削除する

PDFから重複ページを削除する

合計900ページのPDF文書があり、この文書には200ページを超える重複ページがあります。レプリカがある場合は、ソースの直後に表示されます。

たぶんpdftk完了するかもしれませんが、重複する項目を見つける方法が必要です。

ベストアンサー1

comparepdfPDFを比較するためのコマンドラインツールです。0ファイルが同じ場合は終了コード、それ以外の場合はゼロではありません。テキストの内容や視覚的に比較することができます(例:楽しいスキャン)。

comparepdf 1.pdf 2.pdf
comparepdf -ca 1.pdf 2.pdf #compare appearance instead of text

したがって、あなたができることは、PDFを分割してペアで比較し、それに応じて削除することです。

#!/bin/bash
#explode pdf
pdftk original.pdf burst
#compare 900 pages pairwise
for (( i=1 ; i<=899 ; i++ )) ; do
  #pdftk's naming is pg_0001.pdf, pg_0002.pdf etc.
  pdf1=pg_$(printf 04d $i).pdf
  pdf2=pg_$(printf 04d $((i+1))).pdf
  #Remove first file if match. Loop not forwarded in case of three or more consecutive identical pages 
  if comparepdf $pdf1 $pdf2 ; then
     rm $pdf1
  fi
done
#renunite in sorted manner:
pdftk $(find -name 'pg_*.pdf' | sort ) cat output new.pdf

編集:@ notauto生成されたコメントに応じて、単一ページのPDFを統合するのではなく、元のファイルからページを選択することを選択できます。ペアごとの比較が完了したら、次の操作を実行できます。

pdftk original.pdf cat $(find -name 'pg_*.pdf' |
                        awk -F '[._]' '{printf "%d\n",$3}' |
                        sort -n ) output new.pdf

おすすめ記事