Ms word 在Word中插入水印

Ms word 在Word中插入水印,ms-word,office-js,Ms Word,Office Js,我想使用Office.js在Word文档中插入水印。我可以使用以下示例代码插入水印草稿:。示例代码将水印全部放置在页面上 我感兴趣的是一个比下面更简单的解决方案,它只在第一页上放置水印。多谢各位 (function () { "use strict"; var messageBanner; // The initialize function must be run each time a new page is loaded. Office.initiali

我想使用Office.js在Word文档中插入水印。我可以使用以下示例代码插入水印草稿:。示例代码将水印全部放置在页面上

我感兴趣的是一个比下面更简单的解决方案,它只在第一页上放置水印。多谢各位

(function () {
    "use strict";

    var messageBanner;

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            $('#createWM').click(insertWaterMark);
            $('#deleteWM').click(removeWM);

            $('#txtWM').val("DRAFT");

        });
    };


    function insertWaterMark() {
        Word.run(function (ctx) {
            var mySections = ctx.document.sections;
            ctx.load(mySections);
            // ctx.document.body.insertOoxml(mywatermark, "end");
            return ctx.sync().then(function () {
                var myWatermark = getWM($('#txtWM').val());
                var myHeader = mySections.items[0].getHeader("primary");
                var myRange = myHeader.insertOoxml(myWatermark, "replace");
                var myCC = myRange.insertContentControl();
                myCC.title = "myTempCC";
                myCC.appearance = "hidden";
                return ctx.sync();

            });
        }).catch(function (e) {
            app.showNotification(e.message, e.description);

        });


    }

    function getWM(text) {
        var mywatermark = "<?xml version=\"1.0\" standalone=\"yes\"?>\r\n<?mso-application progid=\"Word.Document\"?>\r\n<pkg:package xmlns:pkg=\"http://schemas.microsoft.com/office/2006/xmlPackage\"> ... THE REST OF THE OPENXML content for watermark ...</pkg:package>\r\n";
          return (mywatermark.replace("CONFIDENTIAL", text));
   }

只需将其插入正文,而不是标题中。标题,按设计,在所有页面上重复。我尝试插入正文,但文档没有显示水印。var myRange=ctx.document.body.insertOoxml(myWatermark,“replace”);var myCC=myRange.insertContentControl();我的想法是获取第一个部分,获取第一个页眉,插入水印,然后将headerFooterFirstPageDifferent属性设置为true。但这对我不起作用。我在原始问题中包含了代码。使用Office JS API无法定义(打开)第一页标题。如果文档还没有第一个页眉,那么它只有显示在所有页面上的主(默认)页眉。这就是为什么我说它需要插入到文档正文中。但是插入确实需要一个
Range
对象……我建议您将“var myRange=myHeader.insertOoxml(myWatermark,“replace”);”更新为“var myRange=myHeader.insertOoxml(myWatermark,“end”);”,这样您就不会丢失任何其他特定于页眉的信息,如页码等。
var mySections = ctx.document.sections;
ctx.load(mySections);

return ctx.sync().then(function () {
    var myWatermark = getWM("DRAFT");
    var myHeader = mySections.items[0].getHeader(Word.HeaderFooterType.firstPage);
    mySections.items[0].headerFooterFirstPageDifferent = true;
    var myRange = myHeader.insertOoxml(myWatermark, "replace");

    var myCC = myRange.insertContentControl();
    myCC.title = "myTempCC";
    myCC.appearance = "hidden";

    return ctx.sync();