Kurz notiert: Doppelte Seiten in mehrseitigen PDFs per md5-Checksum identifizieren

Zum prüfen, ob ein Dokument Seiten mit dem gleichen Inhalt enthält, kann ich folgendes Script empfehlen.
Es extrahiert den Text jeder einzelnen Seite, erstellt die MD5-Checksumme über den textuellen Inhalt und vergleicht dann die Checksummen miteinander.

Die jeweils zweite Seite eines Duplikats wird ausgegeben.

import fitz
import hashlib

def find_duplicate_pages(fitzdoc):
    checksums = []
    duplicates = []
    for page in fitzdoc:  # iterate the document pages
        text = page.get_text().encode("utf8") 
        checksum = hashlib.md5(text).hexdigest()
        if checksum not in checksums:
            checksums.append(checksum)
        else:
            print(f'duplicate page {page.number + 1} found.')
            duplicates.append(page.number + 1)

    print(f'There are {len(duplicates)} duplicates in the document.')


fitzdoc = fitz.open("\\\\path\\to\\file\\f25316ef-efc7-11ed-8142-0050568dbdba.pdf")
find_duplicate_pages(fitzdoc)
2 „Gefällt mir“