Change word document style with an app for Office

前端 未结 1 384
你的背包
你的背包 2021-01-22 15:26

Im trying to create an app for Word Office using the Office js API.

I have found how to get and set content into the word document but Im having a hard time finding how

相关标签:
1条回答
  • 2021-01-22 15:54

    The answer to you question is yes and now, the word api is a bit new and missing some functionalities which may make a developer life easier. First, headers are not supported in the word api, a work around for this is to create a Content control and use it as a header. I am currently using this work around in a word app that I use.

    Now for styles, styles are awesome to use. If a user's pc currently have those styles installed on their pc you can easily reference those styles. However, as a developer you may have found out that life is not easy. So I too ran int this issue and approached it by first inserting my desired content, then making a collection of paragraphs proxy object. I then load both both objects, and sync. After I iterate through the collection of paragraphs and add my custom styles which is an preset object which I made. the following function will show you what I tried to explain. I hope this help

        function InsertHtml(content, styleSelection) {
    
        Word.run(function (context) {
    
            var range = context.document.body.insertHtml(content, "end");
            var paragraphs = context.document.body.paragraphs;
    
            return context.sync().then(function () {
    
                var index = $.map(headerStyles, function (obj, index) {
                    if (obj.name == styleSelection) {
                        return index;
                    }
                })
                for (var x = 0; x < paragraphs.items.length; x++) {
    
                    var paragraph = paragraphs.items[x];
                    paragraph.font.name = headerStyles[index].fontName;
                    paragraph.font.color = headerStyles[index].color;
                    paragraph.font.size = headerStyles[index].size;
                    paragraph.leftIndent = headerStyles[index].indent;
                    //paragraph.lineSpacing = headerStyles[index].lineSpacing;
                    //paragraph.alignment = headerStyles[index].alignment;                          
                }
    
    
    
                return context.sync();
            });
        })
        .catch(feedBackMessage);
    };
    
    0 讨论(0)
提交回复
热议问题