页数奇数和偶数-powershell中Y的第X页

时间:2018-11-27 15:40:21

标签: powershell

我想在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一起使用而不转换为字符串。页脚迫使我使用字段,因为在每个页面上只有它们可以不同。

0 个答案:

没有答案