当前位置:   article > 正文

ppt科研绘图之通过vba一键导出pdf_vba导出pdf文件中的图片

vba导出pdf文件中的图片

ppt是画科研插图的优秀工具,能够很方便的导出为pdf并插入latex,但手动通过“另存为-格式-pdf-当前页-确定”将一页ppt保存为一个pdf文件要选择多个选项,稍显繁琐,故编写了一小段vba脚本来自动化这一步骤。
执行该宏,可很方便的将ppt页导出为无边框的pdf文件:
在这里插入图片描述
示例文件下载:
链接: https://pan.baidu.com/s/1QGTC5a5kD35lD-7_EdPqpQ 提取码: kd45

首先确保将ppt保存为启用宏的pptm文件格式。在这里插入图片描述
开启“开发工具”选项卡
在这里插入图片描述
打开vb编辑器填入如下代码并保存:
在这里插入图片描述
在这里插入图片描述

Sub 逐张存储()
    'https://stackoverflow.com/questions/17929124/export-each-slide-of-powerpoint-to-a-separate-pdf-file
    Dim strNotes As String, savePath As String
    Dim oPPT As Presentation, oSlide As Slide
    Dim sPath As String, sExt As String
    
    Set oPPT = ActivePresentation
    'sPath = oPPT.FullName & "_Slide_"
    sPath = oPPT.Path
    sExt = ".pdf"
    
    For Each oSlide In oPPT.Slides
        i = oSlide.SlideNumber
        oSlide.Select
        strNotes = oSlide.NotesPage. _
            Shapes.Placeholders(2).TextFrame.TextRange.Text
        'MsgBox strNotes
        'MsgBox Len(strNotes) = 0
        savePath = sPath & "\" & strNotes & sExt
        If Not Len(strNotes) = 0 Then
            oPPT.ExportAsFixedFormat _
                Path:=savePath, _
                FixedFormatType:=ppFixedFormatTypePDF, _
                RangeType:=ppPrintSelection
            Shell "pdfcrop " & savePath & " " & savePath
        End If
    Next
    Set oPPT = Nothing
End Sub
Sub 选中存储()
    Dim strNotes As String, savePath As String
    Dim oPPT As Presentation, oSlide As Slide
    Dim sPath As String, sExt As String
    
    Set oPPT = ActivePresentation
    'sPath = oPPT.FullName & "_Slide_"
    sPath = oPPT.Path
    sExt = ".pdf"

    Set oSlide = Application.ActiveWindow.View.Slide
    strNotes = oSlide.NotesPage. _
        Shapes.Placeholders(2).TextFrame.TextRange.Text
    savePath = sPath & "\" & strNotes & sExt
    If Not Len(strNotes) = 0 Then
        oPPT.ExportAsFixedFormat _
            Path:=savePath, _
            FixedFormatType:=ppFixedFormatTypePDF, _
            RangeType:=ppPrintSelection
        Shell "pdfcrop " & savePath & " " & savePath
    End If
    Set oPPT = Nothing
End Sub

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

在宏管理器中双击脚本即可执行。
在这里插入图片描述
其中”逐张存储“的功能是遍历ppt中的所有页,逐个保存为pdf文件。其中文件名为每页的备注内容。
在这里插入图片描述
如备注为空则跳过该页。此外,对每个保存的pdf文件,还将执行pdfcrop(latex套件提供的一个pdf剪裁工具),将pdf的白边减裁掉,方便贴到latex中。
”选中存储“功能类似,但仅对选中的那一页ppt进行处理。
为更加方便的使用该宏,可将宏添加到自定义菜单。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/138730
推荐阅读
相关标签
  

闽ICP备14008679号