Моя команда HR спросила, могу ли я помочь им создать новые визитные карточки для всех наших сотрудников. У них есть файл Publisher, и я пытаюсь заменить текст. Я написал все части, которые извлекают информацию из AD и механизм циклирования, но я не могу получить замену текста в функции. Я сделал что-то подобное в Microsoft Word, прежде чем использовать Find.Execute Method from Word.. Это было просто, потому что я просто накормил метод своими аргументами, и он сработал.Замена текста в Microsoft Publisher с помощью Powershell
На этот раз, хотя я пытаюсь использовать FindReplace Object from Publisher. Я думаю, что я злоупотребляю им, но я не уверен, как это сделать. Мой код ниже, и любой ввод будет оценен. Извините, если это глупый вопрос, но я относительно новый для PowerShell и .NET.
$Document = "C:\Test\testcard.pub"
$Publisher = New-Object -comobject Publisher.Application
$OpenDoc = $Publisher.Open($Document)
$OpenDoc.Find.Clear()
$OpenDoc.Find.FindText = "Jane"
$OpenDoc.Find.ReplaceWithText = "John"
$OpenDoc.Find.ReplaceScope = $pbReplaceScopeAll
$OpenDoc.Find.Execute()
$OpenDoc.Save()
$OpenDoc.Close()
$Publisher.quit()
Где '$ pbReplaceScopeAll' взялось? Какова его ценность? –
Он входит в объект FindReplace. https://msdn.microsoft.com/EN-US/library/office/ff939498.aspx Согласно Microsoft: «Значение свойства ReplaceScope может быть одной из констант PbReplaceScope, объявленных в библиотеке типов издателей Microsoft». Он подробно описан здесь: https://msdn.microsoft.com/EN-US/library/office/ff939038.aspx – SuperSputnik45