c# - Adding a watermark to Microsoft Word Document -
i attempting add watermark microsoft word headers using vsto , shapes.addtexteffect
, seems add correctly until check different first page , different odd & pages check-boxes in header , footer design.
it seems adding odd page header, i'm not sure why i'm passing in different header types, find code below.
private static void updatewatermark(comobjectwrapper<document> doc, string watermarktext, string watermarkname, style style) { foreach (section section in doc.resource.sections) { if (!watermarktext.isnullorempty()) { insertwatermark(section.headers[wdheaderfooterindex.wdheaderfooterprimary], section, watermarktext, watermarkname + (int)wdheaderfooterindex.wdheaderfooterprimary, style); if (section.pagesetup.differentfirstpageheaderfooter == -1) insertwatermark(section.headers[wdheaderfooterindex.wdheaderfooterfirstpage], section, watermarktext, watermarkname + (int)wdheaderfooterindex.wdheaderfooterfirstpage, style); if (section.pagesetup.oddandevenpagesheaderfooter == -1) insertwatermark(section.headers[wdheaderfooterindex.wdheaderfooterevenpages], section, watermarktext, watermarkname + (int)wdheaderfooterindex.wdheaderfooterevenpages, style); } } } private static void insertwatermark(headerfooter header, section section, string watermarktext, string watermarkname, style style) { var wm = header.shapes.addtexteffect(msopresettexteffect.msotexteffect1, watermarktext, style.watermarkstyle.fontfamily, style.watermarkstyle.fontsize ?? 72, msotristate.msofalse, msotristate.msofalse, 0, 0, header.range); wm.visible = msotristate.msofalse; wm.name = watermarkname; wm.fill.forecolor.rgb = (int)wdcolor.wdcolorgray10; wm.fill.backcolor.rgb = (int)wdcolor.wdcolorgray10; wm.fill.transparency = 0.2f; wm.fill.solid(); wm.rotation = -45; wm.relativeverticalposition = wdrelativeverticalposition.wdrelativeverticalpositionpage; wm.relativehorizontalposition = wdrelativehorizontalposition.wdrelativehorizontalpositionpage; wm.height = style.watermarkstyle.height != null ? (float)style.watermarkstyle.height : section.pagesetup.pageheight - 400; wm.width = section.pagesetup.pagewidth - 200; wm.wrapformat.allowoverlap = -1; wm.wrapformat.side = wdwrapsidetype.wdwrapboth; wm.wrapformat.type = wdwraptype.wdwrapnone; wm.left = (float)wdshapeposition.wdshapecenter; wm.top = (float)wdshapeposition.wdshapecenter; wm.visible = msotristate.msoctrue; }
if (section.pagesetup.oddandevenpagesheaderfooter == -1)
is enum correct? havent earned commenting yet =)
Comments
Post a Comment