Ms word 在Word中插入水印
我想使用Office.js在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
(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();