diff --git a/src/utils.py b/src/utils.py index 466dd49a4..057638d3b 100644 --- a/src/utils.py +++ b/src/utils.py @@ -1192,7 +1192,7 @@ def get_area(*args) -> float: return f * rect.width * rect.height -def set_metadata(doc: pymupdf.Document, m: dict) -> None: +def set_metadata(doc: pymupdf.Document, m: dict = {}) -> None: """Update the PDF /Info object. Args: @@ -1238,6 +1238,7 @@ def set_metadata(doc: pymupdf.Document, m: dict) -> None: doc.xref_set_key(-1, "Info", "%i 0 R" % info_xref) elif m == {}: # remove existing metadata doc.xref_set_key(-1, "Info", "null") + doc.init_doc() return for key, val in [(k, v) for k, v in m.items() if keymap[k] is not None]: diff --git a/tests/test_metadata.py b/tests/test_metadata.py index 63a440cc8..9a5ef8ca4 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -34,7 +34,7 @@ def test_3237(): metadata1 = doc.metadata metadata1 = repr(metadata1).encode('utf8') doc.set_metadata({}) - doc.init_doc() + metadata2 = doc.metadata metadata2 = repr(metadata2).encode('utf8') print(f'{metadata1=}')