我想在Powershell中用偶数和奇数页上的页脚生成Word文档。
我想在文本的左侧显示数据,在页面的右侧显示Page X of Y
,在下一页显示反向组合。
第一个问题是X of Y
格式。第二个问题是将带有字段的文本放在一个页脚中。如果我放置字段,则文本消失,而当我放置文本时,字段消失。
PowerShell add field codes to ms word footer-在我的情况下不起作用。
感谢您的帮助。
$dat = Get-Date -Format yyyy-MM-dd
$word = New-Object -ComObject word.application
$word.Visible = $false
$doc = $word.documents.add()
$doc.PageSetup.OddAndEvenPagesHeaderFooter = $true
$selection = $word.Selection
# ...
# content
# ...
$section = $doc.sections.item(1)
$footer = $section.Footers(1)
$Range = $footer.Range
$Range.Text = "Some text($dat)"
$Range.ParagraphFormat.Alignment = 0
$footer.PageNumbers.Add(2)
$Range.Font.Size = 10
$footer = $section.Footers(3)
$Range = $footer.Range
$Range.Text = "Some text($dat)"
$Range.ParagraphFormat.Alignment = 2
$footer.PageNumbers.Add(0)
$Range.Font.Size = 10
$outputPath = 'C:\FileToDocx.docx'
$doc.SaveAs($outputPath)
$doc.Close()
$word.Quit()
问题还在于$footer.PageNumbers.Add()
是全局的,并且不取决于我的奇数和偶数页脚范围。
我还尝试通过将PageNumbers交换为$Range.Fields.Add($Range, 26)
和$Range.Fields.Add($Range, 33)
的组合来解决我的问题,例如
$fieldsPage = $Range.Fields.Add($Range, 33)
$sumField = $fieldsPage.Result.Text
$fieldsNumPages = $Range.Fields.Add($Range, 26)
$sumField += ' of ' + $fieldsNumPages.Result.Text
$range.Text = "Some text($dat)`t`tPage $sumField"
但是在这种情况下,我有静态字符串。我不知道如何在静态文本中将这两种类型的字段与页脚中的$dat
一起使用而不转换为字符串。页脚迫使我使用字段,因为在每个页面上只有它们可以不同。