【问题标题】:PowerShell add field codes to ms word footerPowerShell 将域代码添加到 ms word 页脚
【发布时间】:2011-04-15 23:04:04
【问题描述】:

据我所知,我在某些文档中设置了域代码,它们会在打印时显示当前日期,但在其余时间不可见。我现在需要将此页脚应用于数百个文档。似乎这应该可以用 PowerShell 来做,但我真的不知道如何使用它,也找不到好的参考/文档(到目前为止,我已经得到它来打开文档、替换文本和关闭文档)。我希望以下字段代码位于每个页脚部分的右侧:

{ IF{PRINTDATE \@ "M/d/yyyy h:mm"}={DATE \@ "M/d/yyyy h:mm"} "截至 { DATE \@"M/d/ 的非受控副本年年"}"""

我知道这可能是一种糟糕的方法,但真正的问题是,如何使用 PowerShell 在 Word 2007 文档的页脚中添加域代码?

【问题讨论】:

    标签: powershell ms-word


    【解决方案1】:

    感谢 tek-tips 的 crobin1 对此问题的回答。他说他引用了http://msdn.microsoft.com/en-us/library/bb258930%28v=office.12%29.aspx 和一堆“嘿,脚本专家!”博客条目
    这是一个示例脚本,几乎可以满足我的需求。

    函数编辑页脚 ([string]$Document) {

    add-type -AssemblyName "Microsoft.Office.Interop.Word" 
    
    #Variables used
    set-variable -name wdAlignPageNumberCenter -value 1
    

    -选项常量

    $fc1 = @" IF {PRINTDATE \@ "M/d/yyyy h:mm"}={DATE \@ "M/d/yyyy h:mm"} "UNCONTROLLED COPY AS OF {DATE \@ "M/d/yyyy"}" " " "@
    
    
    $Word = New-Object -comobject Word.Application
    $Word.Visible = $True
    #$Word.Visible = $False
    
    $fc2 = [ref] "" -as [Type]
    
    $OpenDoc = $Word.Documents.Open($Document)
    $c = $OpenDoc.Sections.Item(1).Footers.Item(1).PageNumbers.Add($wdAlignPageNumberCenter)
    $range1 = $openDoc.Sections.Item(1).Footers.Item(1).range
    $field1 = $OpenDoc.Fields.Add($range1, -1, $fc2)
    $field1.Code.Text = $fc1
    $field1.Update
    
    #$OpenDoc.Close() }
    

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多