Pdf

消除pdf中的重複頁面

  • June 22, 2021

我有一個 pdf 文件,其中 900 多頁文件中有 200 多個重複頁面。當有副本時,它會立即出現在原件之後。

也許pdftk可以完成這項工作,但我需要一些方法來找出重複項……

comparepdf是一個用於比較 PDF 的命令行工具。退出程式碼是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

編輯:根據@notautogenerated 的評論,可能會選擇從原始文件中選擇頁面而不是統一單頁PDF。成對比較完成後,可以執行以下操作:

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

引用自:https://unix.stackexchange.com/questions/655072