Similmente a quanto visto per Excel, PowerShell può interagire direttamente con l'applicazione Microsoft Word tramite il suo Component Object Model (COM). Questo ti dà un controllo totale su quasi ogni funzionalità di Word, direttamente da uno script.
Nota: Questo approccio richiede che Microsoft Word sia installato sulla macchina in cui viene eseguito lo script.
Esempio Pratico: Trova e Sostituisci, e Salva in PDF
Questo script apre un documento Word che funge da template (`template.docx`), sostituisce dei segnaposto al suo interno, e poi salva il risultato come un nuovo file PDF.
# Crea un'istanza di Word (invisibile)
$word = New-Object -ComObject Word.Application
$word.Visible = $false
# Definisci i percorsi dei file
$templatePath = "C:\percorso\template.docx"
$outputPath = "C:\percorso\output.pdf"
# Apri il documento template
$document = $word.Documents.Open($templatePath)
# Esegui le operazioni di "Trova e Sostituisci"
$findReplace = @{
"{{NOME_CLIENTE}}" = "Mario Rossi"
"{{DATA_FATTURA}}" = (Get-Date).ToString("dd/MM/yyyy")
"{{IMPORTO}}" = "150,00 €"
}
foreach ($key in $findReplace.Keys) {
$selection = $word.Selection
$selection.Find.Text = $key
$selection.Find.Replacement.Text = $findReplace[$key]
$selection.Find.Execute(2) # wdReplaceAll = 2
}
# Salva il documento come PDF
# wdFormatPDF = 17
$document.SaveAs2($outputPath, 17)
# Chiudi tutto
$document.Close()
$word.Quit()
Analisi dello Script
- `New-Object -ComObject Word.Application`: Crea un'istanza dell'applicazione Word in background.
- `$word.Documents.Open()`: Apre il file specificato.
- `$word.Selection.Find`: Accede all'oggetto "Find" di Word e ne imposta le proprietà `Text` (cosa cercare) e `Replacement.Text` (con cosa sostituire).
- `.SaveAs2($path, 17)`: Il metodo per salvare il file. Il numero `17` è una costante predefinita di Word che corrisponde al formato PDF.
Questo approccio è incredibilmente potente per l'automazione di documenti in un ambiente Windows, specialmente per la generazione di report e la creazione di documenti standardizzati.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza