You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to add core properties (like category, version, ...) to a document with docxcompose. However, the resulting file, when openend with Microsoft Word, seemed to be "corrupted". Word complained about "unreadable content" and suggested to "recover" the file (wording might not be exact, translated from the German warning message). The recovery works and the file is displayed, however, the core properties are not present, neither before nor after.
After some digging, my tentative explanation is that the namespace prefix for custom properties should be "op" (according to here) instead of "cp" which is used in docxcompose. "cp" definitely overwrites the python-docx namespace prefix for "core properties" in utils.py. After I replaced every occurence of "cp" with "op" in utils.py and properties.py, everything seems to work as expected for me.
MWE:
fromdocximportDocumentfromdocxcompose.composerimportComposercomposer=Composer(Document())
# adding any of these (at least) result in a "corrupted" filecomposer.doc.core_properties.version="0"# composer.doc.core_properties.keywords = "keyword"# composer.doc.core_properties.category = "category"composer.save("test.docx")
The text was updated successfully, but these errors were encountered:
I tried to add core properties (like category, version, ...) to a document with docxcompose. However, the resulting file, when openend with Microsoft Word, seemed to be "corrupted". Word complained about "unreadable content" and suggested to "recover" the file (wording might not be exact, translated from the German warning message). The recovery works and the file is displayed, however, the core properties are not present, neither before nor after.
After some digging, my tentative explanation is that the namespace prefix for custom properties should be "op" (according to here) instead of "cp" which is used in docxcompose. "cp" definitely overwrites the python-docx namespace prefix for "core properties" in
utils.py
. After I replaced every occurence of "cp" with "op" inutils.py
andproperties.py
, everything seems to work as expected for me.MWE:
The text was updated successfully, but these errors were encountered: