You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
3.4 KiB
65 lines
3.4 KiB
# encoding: utf-8
|
|
|
|
"""Custom element classes related to document settings"""
|
|
|
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
from docx.oxml.xmlchemy import BaseOxmlElement, ZeroOrOne
|
|
|
|
|
|
class CT_Settings(BaseOxmlElement):
|
|
"""`w:settings` element, root element for the settings part"""
|
|
|
|
_tag_seq = (
|
|
"w:writeProtection", "w:view", "w:zoom", "w:removePersonalInformation",
|
|
"w:removeDateAndTime", "w:doNotDisplayPageBoundaries",
|
|
"w:displayBackgroundShape", "w:printPostScriptOverText",
|
|
"w:printFractionalCharacterWidth", "w:printFormsData", "w:embedTrueTypeFonts",
|
|
"w:embedSystemFonts", "w:saveSubsetFonts", "w:saveFormsData", "w:mirrorMargins",
|
|
"w:alignBordersAndEdges", "w:bordersDoNotSurroundHeader",
|
|
"w:bordersDoNotSurroundFooter", "w:gutterAtTop", "w:hideSpellingErrors",
|
|
"w:hideGrammaticalErrors", "w:activeWritingStyle", "w:proofState",
|
|
"w:formsDesign", "w:attachedTemplate", "w:linkStyles",
|
|
"w:stylePaneFormatFilter", "w:stylePaneSortMethod", "w:documentType",
|
|
"w:mailMerge", "w:revisionView", "w:trackRevisions", "w:doNotTrackMoves",
|
|
"w:doNotTrackFormatting", "w:documentProtection", "w:autoFormatOverride",
|
|
"w:styleLockTheme", "w:styleLockQFSet", "w:defaultTabStop", "w:autoHyphenation",
|
|
"w:consecutiveHyphenLimit", "w:hyphenationZone", "w:doNotHyphenateCaps",
|
|
"w:showEnvelope", "w:summaryLength", "w:clickAndTypeStyle",
|
|
"w:defaultTableStyle", "w:evenAndOddHeaders", "w:bookFoldRevPrinting",
|
|
"w:bookFoldPrinting", "w:bookFoldPrintingSheets",
|
|
"w:drawingGridHorizontalSpacing", "w:drawingGridVerticalSpacing",
|
|
"w:displayHorizontalDrawingGridEvery", "w:displayVerticalDrawingGridEvery",
|
|
"w:doNotUseMarginsForDrawingGridOrigin", "w:drawingGridHorizontalOrigin",
|
|
"w:drawingGridVerticalOrigin", "w:doNotShadeFormData", "w:noPunctuationKerning",
|
|
"w:characterSpacingControl", "w:printTwoOnOne", "w:strictFirstAndLastChars",
|
|
"w:noLineBreaksAfter", "w:noLineBreaksBefore", "w:savePreviewPicture",
|
|
"w:doNotValidateAgainstSchema", "w:saveInvalidXml", "w:ignoreMixedContent",
|
|
"w:alwaysShowPlaceholderText", "w:doNotDemarcateInvalidXml",
|
|
"w:saveXmlDataOnly", "w:useXSLTWhenSaving", "w:saveThroughXslt",
|
|
"w:showXMLTags", "w:alwaysMergeEmptyNamespace", "w:updateFields",
|
|
"w:hdrShapeDefaults", "w:footnotePr", "w:endnotePr", "w:compat", "w:docVars",
|
|
"w:rsids", "m:mathPr", "w:attachedSchema", "w:themeFontLang",
|
|
"w:clrSchemeMapping", "w:doNotIncludeSubdocsInStats",
|
|
"w:doNotAutoCompressPictures", "w:forceUpgrade", "w:captions",
|
|
"w:readModeInkLockDown", "w:smartTagType", "sl:schemaLibrary",
|
|
"w:shapeDefaults", "w:doNotEmbedSmartTags", "w:decimalSymbol", "w:listSeparator"
|
|
)
|
|
evenAndOddHeaders = ZeroOrOne("w:evenAndOddHeaders", successors=_tag_seq[48:])
|
|
del _tag_seq
|
|
|
|
@property
|
|
def evenAndOddHeaders_val(self):
|
|
"""value of `w:evenAndOddHeaders/@w:val` or |None| if not present."""
|
|
evenAndOddHeaders = self.evenAndOddHeaders
|
|
if evenAndOddHeaders is None:
|
|
return False
|
|
return evenAndOddHeaders.val
|
|
|
|
@evenAndOddHeaders_val.setter
|
|
def evenAndOddHeaders_val(self, value):
|
|
if value in [None, False]:
|
|
self._remove_evenAndOddHeaders()
|
|
else:
|
|
self.get_or_add_evenAndOddHeaders().val = value
|