param(
[string]$inputFilePath,
[string]$outputFilePath
)
try {
$powerpoint = New-Object -ComObject PowerPoint.Application
if (-not $powerpoint) {
throw "Failed to start PowerPoint. Make sure it is installed on this system."
}
$powerpoint.Presentations | ForEach-Object { $_.Close() }
$presentation = $powerpoint.Presentations.Open($inputFilePath, [Microsoft.Office.Core.MsoTriState]::msoFalse)
$presentation.Slides[1].Export($outputFilePath, "TIF")
$presentation.Close()
$powerpoint.Quit()
} catch {
$ErrorMessage = "An error occurred: $_"
Write-Error $ErrorMessage
} finally {
if ($presentation) {
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($presentation) | Out-Null
}
if ($powerpoint) {
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($powerpoint) | Out-Null
}
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}