0

I am writing below code to remove annotations from a pdf file and then save it to new pdf. However, I am getting RuntimeError: invalid key in dict. Below is the Code:

import fitz
import re
doc = fitz.open("test.pdf")
for i in range(doc.pageCount):
    page = doc[i]
    for annot in page.annots():
        page.delete_annot(annot)
    doc.save('test1.pdf')

Error: mupdf: invalid key in dict

RuntimeError: invalid key in dict

error screenshot

atline
  • 28,355
  • 16
  • 77
  • 113
Sundaram
  • 1
  • 4

1 Answers1

0

Assuming that doc type is dict

Your mistake is page = doc[i] because range return a number for examble:

for i in range(): # whatever:

the key (i) will be a number but dicts does not accept number it accept string.

The Solution

You need to convert dict data to index

import fitz
import re
doc = fitz.open("test.pdf")
for i in range(doc.pageCount):
    page = list(doc.values())[i]
    for annot in page.annots():
        page.delete_annot(annot)
    doc.save('test1.pdf')
ELAi
  • 170
  • 2
  • 8