# This Section imports the necessary classes from the PyPDF2 library
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.generic import ContentStream, NameObject, TextStringObject
from PyPDF2.utils import b_
# The watermark says SAMPLE on it so I've tried different
# capitalization cases
wm_text = "Sample"
replace_with = ""
# I'm hoping to just replace the SAMPLE watermark with nothing
# so a space could suffice
# Load PDF into pyPDF
reader = PdfFileReader("input.pdf")
writer = PdfFileWriter()
for page in reader.pages:
# Get the current page's contents
content_object = page["/Contents"].getObject()
content = ContentStream(content_object, reader)
# Loop over all pdf elements
for operands, operator in content.operations:
# Was told to adapt this part dependent on my PDF file
if operator == b_("TJ"):
text = operands[0][0]
if isinstance(text, TextStringObject) and text.startswith(
wm_text
):
operands[0] = TextStringObject(replace_with)
# Set the modified content as content object on the page
page.__setitem__(NameObject("/Contents"), content)
# Add the page to the output
writer.addPage(page)
# Write the stream
with open("output.pdf", "wb") as fh:
writer.write(fh)
operands[0] = NullObject()
来删除标志图像,但输出的 PDF 文件被损坏了。 - Lei Yang