Skip to content

Instantly share code, notes, and snippets.

@barisbikmaz
Last active May 17, 2023 12:03
Show Gist options
  • Save barisbikmaz/1dc868ac2b038e5d48e0626b78fa9176 to your computer and use it in GitHub Desktop.
Save barisbikmaz/1dc868ac2b038e5d48e0626b78fa9176 to your computer and use it in GitHub Desktop.
Adds a style from a source document into the current document
name: Styles API - Adding Style
description: Adds a style from a source document into the current document
host: WORD
api_set: {}
script:
content: "/**\n * USE CASE:\n * We want to add a style from a base64 docx document into the current document\n *\n * ISSUES:\n * - retrieveStylesFromBase64 returns a JSON with UpperCase properties but when settings styles we need lowerCase\n * - setting a style property with null causes errors\n * - settings the font propery often errors\n * - retrieveStylesFromBase64 sometime returns font property with null objects\n */\n\n$(\"#add-style\").click(() => tryCatch(addStyle));\n\nfunction sourceDocumentStyleName() {\n return $(\"input[name=sourceStyleName]\").val() as string;\n}\n\nfunction targetDocumentStyleName() {\n return $(\"input[name=targetStyleName]\").val() as string;\n}\n\nasync function addStyle() {\n const styleToApplyNameLocal = sourceDocumentStyleName();\n\n console.log(`⚙️ Searching for style ${styleToApplyNameLocal} in source document...`);\n\n const styles = await loadBase64DocumentStyles();\n const sourceDocumentStyle = styles.find((style) => {\n return style.NameLocal === styleToApplyNameLocal;\n });\n\n if (!sourceDocumentStyle) {\n console.log(`\U0001F6D1 Style ${styleToApplyNameLocal} not found in the source document.`);\n return;\n }\n\n console.log(`✔️ Source style found. `);\n console.log(sourceDocumentStyle);\n\n console.log(\"⚙️ Removing unsettable and null properties...\");\n const styleWithLowerCaseProps = makePropsLowerCaseAndRemoveNulls(sourceDocumentStyle);\n // console.log(styleWithLowerCaseProps);\n\n const styleWithoutUnchangableStyles = removeUnchangableStyleProperties(styleWithLowerCaseProps);\n console.log(styleWithoutUnchangableStyles);\n\n await Word.run(async (context) => {\n const targetStyleName = targetDocumentStyleName();\n const newStyle = context.document.addStyle(targetStyleName, Word.StyleType.paragraph);\n console.log(`✔️ Source style added. `);\n\n console.log(`⚙️ Changing Source style properties ... `);\n newStyle.set(\n {\n ...styleWithoutUnchangableStyles,\n quickStyle: true\n },\n { throwOnReadOnly: false }\n );\n\n // newStyle.set(myStyle, { throwOnReadOnly: false });\n\n await context.sync();\n console.log(\"✔️ Style properties changed.\");\n });\n}\n\nasync function loadBase64DocumentStyles() {\n return await Word.run(async (context) => {\n const result = context.application.retrieveStylesFromBase64(stylesBase64Document);\n await context.sync();\n\n const json = JSON.parse(result.value);\n console.log(json);\n return json.Styles;\n });\n}\n\nfunction makePropsLowerCaseAndRemoveNulls(obj: object) {\n return _.transform(obj, function(result, value, key) {\n var currentKey = key.charAt(0).toLowerCase() + key.substring(1);\n if (value == null) {\n return;\n }\n\n result[currentKey] = _.isObject(value) ? makePropsLowerCaseAndRemoveNulls(value) : value;\n });\n}\n\nfunction removeUnchangableStyleProperties(style: Word.Style) {\n return _.omit(style, [\"baseStyle\", \"builtIn\", \"inUse\", \"linked\", \"nameLocal\", \"type\", \"nextParagraphStyle\"]);\n}\n\n/** Default helper for invoking an action and handling errors. */\nasync function tryCatch(callback) {\n try {\n await callback();\n } catch (error) {\n // Note: In a production add-in, you'd want to notify the user through your add-in's UI.\n console.error(error);\n }\n}\n\nconst myStyle: Word.Interfaces.StyleUpdateData = {\n priority: 1,\n quickStyle: true,\n unhideWhenUsed: false,\n visibility: false,\n paragraphFormat: {\n alignment: \"Left\",\n firstLineIndent: 0,\n keepTogether: false,\n keepWithNext: false,\n leftIndent: 0,\n lineSpacing: 12.95,\n lineUnitAfter: 0,\n lineUnitBefore: 0,\n mirrorIndents: false,\n outlineLevel: \"OutlineLevel4\",\n rightIndent: 0,\n spaceAfter: 8,\n spaceBefore: 0,\n widowControl: true\n },\n font: {\n name: \"Calibri\",\n size: 20,\n bold: true,\n italic: false,\n color: \"#ED7D31\",\n underline: \"None\",\n subscript: false,\n superscript: false,\n strikeThrough: false,\n doubleStrikeThrough: false,\n highlightColor: null\n }\n};\n\nconst stylesBase64Document =\n \"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\";\n"
language: typescript
template:
content: "<section class=\"samples ms-font-m\">\n\t<h3> \U0001FA84This sample adds the style from a source document into the current document</h3>\n\n\t<div class=\"ms-TextField\">\n\t\t<label class=\"ms-Label\">Name of Style in Source Document</label>\n\t\t<input name=\"sourceStyleName\" class=\"ms-TextField-field\" type=\"text\" value=\"ofaw1\" />\n\t</div>\n\n\t\t<div class=\"ms-TextField\">\n\t\t\t<label class=\"ms-Label\">Style in Target Document</label>\n\t\t\t<input name=\"targetStyleName\" class=\"ms-TextField-field\" type=\"text\" value=\"ofaw1\" />\n\t</div>\n\n\t\t\t<button id=\"add-style\" class=\"ms-Button\">\n\t <span class=\"ms-Button-label\">➕ Add</span>\n\t</button>\n</section>"
language: html
style:
content: |-
section.samples {
margin-top: 20px;
}
section.samples .ms-Button, section.setup .ms-Button {
display: block;
margin-bottom: 5px;
margin-left: 20px;
min-width: 80px;
}
language: css
libraries: |+
https://appsforoffice.microsoft.com/lib/beta/hosted/office.js
@types/office-js-preview
office-ui-fabric-js@1.4.0/dist/css/fabric.min.css
office-ui-fabric-js@1.4.0/dist/css/fabric.components.min.css
core-js@2.4.1/client/core.min.js
@types/core-js
jquery@3.1.1
@types/jquery@3.3.1
lodash@4.17.15
@types/lodash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment