public void Apply(DocumentProperties dop) { //start w:settings _writer.WriteStartElement("w", "settings", OpenXmlNamespaces.WordprocessingML); //zoom _writer.WriteStartElement("w", "zoom", OpenXmlNamespaces.WordprocessingML); _writer.WriteAttributeString("w", "percent", OpenXmlNamespaces.WordprocessingML, dop.wScaleSaved.ToString()); ZoomType zoom = (ZoomType)dop.zkSaved; if (zoom != ZoomType.none) { _writer.WriteAttributeString("w", "val", OpenXmlNamespaces.WordprocessingML, zoom.ToString()); } _writer.WriteEndElement(); //doc protection //<w:documentProtection w:edit="forms" w:enforcement="1"/> //embed system fonts if (!dop.fDoNotEmbedSystemFont) { _writer.WriteElementString("w", "embedSystemFonts", OpenXmlNamespaces.WordprocessingML, ""); } //mirror margins if (dop.fMirrorMargins) { _writer.WriteElementString("w", "mirrorMargins", OpenXmlNamespaces.WordprocessingML, ""); } //evenAndOddHeaders if (dop.fFacingPages) { _writer.WriteElementString("w", "evenAndOddHeaders", OpenXmlNamespaces.WordprocessingML, ""); } //proof state XmlElement proofState = _nodeFactory.CreateElement("w", "proofState", OpenXmlNamespaces.WordprocessingML); if (dop.fGramAllClean) { appendValueAttribute(proofState, "grammar", "clean"); } if (proofState.Attributes.Count > 0) { proofState.WriteTo(_writer); } //stylePaneFormatFilter if (dop.grfFmtFilter != 0) { _writer.WriteStartElement("w", "stylePaneFormatFilter", OpenXmlNamespaces.WordprocessingML); _writer.WriteAttributeString("w", "val", OpenXmlNamespaces.WordprocessingML, String.Format("{0:x4}", dop.grfFmtFilter)); _writer.WriteEndElement(); } //default tab stop _writer.WriteStartElement("w", "defaultTabStop", OpenXmlNamespaces.WordprocessingML); _writer.WriteAttributeString("w", "val", OpenXmlNamespaces.WordprocessingML, dop.dxaTab.ToString()); _writer.WriteEndElement(); //drawing grid if (dop.dogrid != null) { _writer.WriteStartElement("w", "displayHorizontalDrawingGridEvery", OpenXmlNamespaces.WordprocessingML); _writer.WriteAttributeString("w", "val", OpenXmlNamespaces.WordprocessingML, dop.dogrid.dxGridDisplay.ToString()); _writer.WriteEndElement(); _writer.WriteStartElement("w", "displayVerticalDrawingGridEvery", OpenXmlNamespaces.WordprocessingML); _writer.WriteAttributeString("w", "val", OpenXmlNamespaces.WordprocessingML, dop.dogrid.dyGridDisplay.ToString()); _writer.WriteEndElement(); if (dop.dogrid.fFollowMargins == false) { _writer.WriteElementString("w", "doNotUseMarginsForDrawingGridOrigin", OpenXmlNamespaces.WordprocessingML, ""); } } //typography if (dop.doptypography != null) { if (dop.doptypography.fKerningPunct == false) { _writer.WriteElementString("w", "noPunctuationKerning", OpenXmlNamespaces.WordprocessingML, ""); } } //footnote properties XmlElement footnotePr = _nodeFactory.CreateElement("w", "footnotePr", OpenXmlNamespaces.WordprocessingML); if (dop.nFtn != 0) { appendValueAttribute(footnotePr, "numStart", dop.nFtn.ToString()); } if (dop.rncFtn != 0) { appendValueAttribute(footnotePr, "numRestart", dop.rncFtn.ToString()); } if (dop.Fpc != 0) { appendValueAttribute(footnotePr, "pos", ((FootnotePosition)dop.Fpc).ToString()); } if (footnotePr.Attributes.Count > 0) { footnotePr.WriteTo(_writer); } writeCompatibilitySettings(dop); writeRsidList(); //close w:settings _writer.WriteEndElement(); _writer.Flush(); }