from pathlib import Path from pypdf import PdfWriter from pypdf.generic._data_structures import StreamObject books_directory = Path("books") export_directory = Path("export") for input_filepath in books_directory.glob("*.pdf"): output_filepath = export_directory / input_filepath.name print("=====", output_filepath, "=====") writer = PdfWriter(clone_from=str(input_filepath)) for page in writer.pages: contents = page._get_contents_as_bytes() watermark = contents.find(b'/Watermark') if watermark > -1: contents = contents[:watermark - 1] stream = StreamObject() stream.set_data(contents) page.replace_contents(stream) with open(output_filepath, "wb") as f: writer.write(f)