Я хотел бы генерировать текстовые документы в Powershell с разными нижними колонтитулами на четных и нечетных страницах.
Я хотел бы, чтобы текст с данными находился слева, а Page X of Y
- справа на одной странице иобратная комбинация на следующей странице.
Первая проблема в формате X of Y
.И вторая проблема у меня с размещением текста с полем в одном нижнем колонтитуле.Если я поместил поле, текст исчезал, а когда я помещал текст, поле исчезало.
PowerShell добавляет коды полей в нижний колонтитул слова MS - в моем случае не работает.
Буду благодарен за вашу помощь.
$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
в нижнем колонтитуле без преобразования в строку.Нижний колонтитул заставляет меня использовать поля, потому что только они могут быть разными на каждой странице.