Sie können PowerShell verwenden! Da es sich bei modernen Office-Dokumenten eigentlich um ZIP-Dateien handelt, die hauptsächlich XML-Dateien enthalten, können Sie diese relativ einfach bearbeiten, ohne auf Office-Komponenten angewiesen zu sein. Ich habe dieses Skript für Sie geschrieben:
[CmdletBinding()]
Param(
[Parameter(Mandatory = $true)][string]$File,
[Parameter()][int]$Quality = 50
)
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.Drawing
$fs = New-Object System.IO.FileStream (Resolve-Path $File), 'Open'
$zip = New-Object System.IO.Compression.ZipArchive $fs, 'Update'
$zip.Entries | ? {$_.FullName -like 'ppt/media/*.png'} | % {
$s = $_.Open()
$img = [System.Drawing.Image]::FromStream($s)
$s.Position = 0
$codec = [System.Drawing.Imaging.ImageCodecInfo]::GetImageDecoders() | ? {$_.FormatId -eq [System.Drawing.Imaging.ImageFormat]::Jpeg.Guid}
$qualityprop = [System.Drawing.Imaging.Encoder]::Quality
$encodeparams = New-Object System.Drawing.Imaging.EncoderParameters 1
$encodeparams.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter $qualityprop, $Quality
$img.Save($s, $codec, $encodeparams)
$s.SetLength($s.Position)
$s.Close()
}
$zip.Dispose()
Es öffnet die angegebene PPTX-Datei als ZIP-Archiv, findet jedes eingebettete PNG-Bild und konvertiert dieses Bild in ein JPG. Die Dateierweiterung im Archiv wird nicht aktualisiert, PowerPoint scheint sich jedoch nicht darum zu kümmern (getestet in PowerPoint 2016 unter Windows 10). Wenn Sie möchten, dass versucht wird, mit allen Bildtypen zu arbeiten (ich habe keine anderen Formate getestet), ändern Sie diese Zeile:
$zip.Entries | ? {$_.FullName -like 'ppt/media/*.png'} | % {
Dazu:
$zip.Entries | ? {$_.FullName.StartsWith('ppt/media/')} | % {
Speichern Sie das Skript als .ps1
Datei, z pptxjpg.ps1
. Wenn Sie dies noch nicht getan haben, befolgen Sie die Anweisungen im Abschnitt "Aktivieren von Skripten" des PowerShell-Tag-Wikis . Sie können es dann an einer PowerShell-Eingabeaufforderung wie folgt ausführen:
.\pptxjpg.ps1 C:\path\to\presentation.pptx
Es ist ein optionaler Parameter erforderlich, der die JPG-Qualität angibt (standardmäßig 50). Wenn Sie noch mehr Speicherplatz sparen möchten, können Sie einen niedrigeren Wert wie den folgenden angeben:
.\pptxjpg.ps1 C:\path\to\presentation.pptx -Quality 20
Beim Testen dieses letzteren Befehls wurde die Größe einer Präsentation mit einem hochauflösenden Screenshot und einem mittelgroßen Diagramm von 982 KB auf 253 KB reduziert.