2011-06-03 6 views
1

Je voudrais ajouter un en-tête personnalisé à un fichier .doc en utilisant PowerShell (je veux dire l'en-tête réelle, pas un titre). Cela DEVRAIT fonctionner:Ajouter un en-tête à un document Word?

$Word=New-Object -ComObject "Word.Application" 
$wdSeekPrimaryHeader = 1 
$Doc=$Word.Documents.Open("C:\test.doc") 
$Selection=$Word.Selection 
$Doc.ActiveWindow.ActivePane.View.SeekView=$wdSeekPrimaryHeader 
$Selection.TypeText("Text") 
$doc.close([ref]$Word.WdSaveOptions.wdDoNotSaveChanges) 
$word.quit() 

Mais ce n'est pas le cas. En fait, il ne fait rien que je puisse dire.

Des idées sur ce que je fais mal ici?

Voici le code qui fonctionne:

$Word=New-Object -ComObject "Word.Application" 
$wdSeekPrimaryHeader = 1 
$Doc=$Word.Documents.Open("C:\test.doc") 
$Selection=$Word.Selection 
$Doc.ActiveWindow.ActivePane.View.SeekView=$wdSeekPrimaryHeader 
$Selection.TypeText("Text") 
$Doc.Save() 
$Doc.Close() 
$Word.Quit() 

Merci encore piaule!

Répondre

2

Je ne suis pas sûr que le [ref] fonctionne de toute façon mais vous avez référencé DoNotSaveChanges. ne voudriez-vous pas enregistrer les changements?

+0

Ouais c'est en fait la mauvaise ligne de code :) – JoeG

+0

My bad, dans le script que je tentais cela dans, je l'avais commenté le code correct, et était en utilisant le code que j'ai posté. Merci de m'avoir fait regarder de plus près! – JoeG

+0

Et oui le [ref] ne fonctionne pas;) – JoeG

1

Je reçois une erreur sur [ref] (Argument: '1' ne doit pas être un System.Management.Automation.PSReference. N'utilisez pas [ref].) Si je remplace la ligne close (..) avec:

$doc.save() 
$doc.close() 

Puis je vois l'en-tête

+0

Quelle version de Word as-tu installée? – JoeG

+0

$ word.Version imprime '12 .0 ' – PeskyGnat

Questions connexes