将Powerpoint单幻灯片演示批量转换为JPEG

时间:2015-05-27 01:59:34

标签: image applescript powerpoint batch-processing automator

搜索Automator或Applescript,使用单个幻灯片将Powerpoint演示文稿批量转换为图像文件(最好是JPEG)。

我正在使用Powerpoint 2011 for Mac,我正在运行OS X Yosemite。甲

2 个答案:

答案 0 :(得分:0)

您可以使用属于LibreOffice的unoconv转换为PDF,然后使用ImageMagick将PDF转换为JPG。

这两个工具都可以使用homebrew安装在OSX上,即

brew install imagemagick

该命令将是

unoconv someFile.ppt someFile.pdf
convert -density 144 someFile.pdf someFile.jpg

我不会使用AppleScript批处理这个,我会在终端中使用find shell中的bash

find . -iname "*.ppt" -exec unoconv "{}" "{}.pdf" \;

答案 1 :(得分:0)

经过数周的尝试,我找到了一种将整个pptx文件文件夹批量转换为jpg(每个幻灯片一张)的方法,其名称与每个文件的原始名称相同。使用VBA的IT窗口。他走了,不要介意我刚刚更改代码的非代码部分,并混合了我在那里找到的许多代码。

Sub BatchSave()
' Opens each PPT in the target folder and saves as PPT97-2003 format

    Dim sFolder As String
    Dim sPresentationName As String
    Dim oPresentation As Presentation
    Dim osld As Slide

    ' Get the foldername:

    sFolder = InputBox("Folder containing PPT files to process", "Folder")

    If sFolder = "" Then
        Exit Sub
    End If

    ' Make sure the folder name has a trailing backslash
    If Right$(sFolder, 1) <> "\" Then
        sFolder = sFolder & "\"
    End If

    ' Are there PPT files there?
    If Len(Dir$(sFolder & "*.PPTX")) = 0 Then
        MsgBox "Bad folder name or no PPT files in folder."
        Exit Sub
    End If

    ' Open and save the presentations
    sPresentationName = Dir$("*.PPTX")
    While sPresentationName <> ""
        Set osld = ActiveWindow.View.Slide
        osld.Export sPresentationName & ".jpg", "jpg"

        ' New presentation is now saved as N_originalname.ppt
        ' Now let's rename them - comment out the next couple lines
        '   if you don't want to do this
        ' Original.PPT to Original.PPT.OLD
        'Name sFolder & sPresentationName As sFolder & sPresentationName & ".OLD"
        ' N_Original.PPT to Original.PPT
        'Name sFolder & "N_" & sPresentationName As sFolder & sPresentationName
        sPresentationName = Dir$()
    Wend

    MsgBox "DONE"

End Sub