Skip to content

Commit 5c400a9

Browse files
committed
call init_doc after every metadata change
1 parent c31ba4f commit 5c400a9

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ def get_area(*args) -> float:
11921192
return f * rect.width * rect.height
11931193

11941194

1195-
def set_metadata(doc: pymupdf.Document, m: dict) -> None:
1195+
def set_metadata(doc: pymupdf.Document, m: dict = None) -> None:
11961196
"""Update the PDF /Info object.
11971197
11981198
Args:
@@ -1202,7 +1202,9 @@ def set_metadata(doc: pymupdf.Document, m: dict) -> None:
12021202
raise ValueError("is no PDF")
12031203
if doc.is_closed or doc.is_encrypted:
12041204
raise ValueError("document closed or encrypted")
1205-
if type(m) is not dict:
1205+
if m is None:
1206+
m = {}
1207+
elif type(m) is not dict:
12061208
raise ValueError("bad metadata")
12071209
keymap = {
12081210
"author": "Author",
@@ -1238,6 +1240,7 @@ def set_metadata(doc: pymupdf.Document, m: dict) -> None:
12381240
doc.xref_set_key(-1, "Info", "%i 0 R" % info_xref)
12391241
elif m == {}: # remove existing metadata
12401242
doc.xref_set_key(-1, "Info", "null")
1243+
doc.init_doc()
12411244
return
12421245

12431246
for key, val in [(k, v) for k, v in m.items() if keymap[k] is not None]:

tests/test_metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def test_3237():
3434
metadata1 = doc.metadata
3535
metadata1 = repr(metadata1).encode('utf8')
3636
doc.set_metadata({})
37-
doc.init_doc()
37+
3838
metadata2 = doc.metadata
3939
metadata2 = repr(metadata2).encode('utf8')
4040
print(f'{metadata1=}')

0 commit comments

Comments
 (0)