Sie können PowerShell verwenden! Da moderne Office-Dokumente eigentlich ZIP-Dateien sind, die hauptsächlich XML-Dateien enthalten, können wir sie ziemlich 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 Erweiterung der Datei innerhalb des Archivs wird nicht aktualisiert. PowerPoint scheint dies jedoch nicht zu interessieren (getestet unter PowerPoint 2016 unter Windows 10). Wenn Sie versuchen möchten, mit allen Bildtypen zu arbeiten (ich habe keine anderen Formate getestet), ändern Sie diese Zeile:
$zip.Entries | ? {$_.FullName -like 'ppt/media/*.png'} | % {
Zu diesem:
$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 Skripts des PowerShell-Tag-Wikis . Sie können es dann über eine 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. Der Standardwert ist 50. Wenn Sie noch mehr Speicherplatz sparen möchten, können Sie einen niedrigeren Wert angeben, z.
.\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 Diagramm mittlerer Größe von 982 KB auf 253 KB reduziert.