使用VBA将PowerPoint导出为PDF时,不显示页眉和页脚

时间:2019-06-12 19:25:56

标签: vba powerpoint powerpoint-vba

我有以下代码将幻灯片和Notes的PowerPoint文件导出为PDF格式。

该代码成功设置了讲义和注释的页眉和页脚。但是,它们没有显示在PDF文件中。

当我打开PowerPoint文件,然后取消选中,然后使用内置对话框检查注释和讲义的页眉和页脚,然后手动将注释导出到PDF文件时,页眉和页脚已刷新,正在运行。

因此,在代码中,我将页眉和页脚的Visible属性设置为false,然后设置为true,尝试使用该代码执行手动步骤,但仍未显示。

该代码生成PDF文件,一个用于幻灯片,一个用于笔记。 根据设计,幻灯片没有显示页眉和页脚,对此我感到满意。 注释应按代码显示页眉和页脚,但未显示,或以代码未设置的先前值显示。

非常感谢您的支持

谢谢, Fouad Sabry

Sub ExportPowerPointPresentationAsPDF(objPresentation As PowerPoint.Presentation, strPath As String)

    Dim strPDFFilePath As String
    Dim sPDFFileName As String
    Dim sPrefix As String
    On Error GoTo Err_PDFExport

    strPDFFilePath = strPath
    sPrefix = Split(objPresentation.Name, ".")(0)

    With objPresentation.HandoutMaster.HeadersFooters

        .Header.Text = ""
        .Header.Text = "This is a header"
        .Header.Visible = msoFalse
        .Header.Visible = msoTrue
        objPresentation.Save

        .Footer.Text = ""
        .Footer.Text = "This is a footer"
        .Footer.Visible = msoFalse
        .Footer.Visible = msoTrue
        objPresentation.Save

    End With

    With objPresentation.NotesMaster.HeadersFooters

        .Header.Text = ""
        .Header.Text = "This is a header"
        .Header.Visible = msoFalse
        .Header.Visible = msoTrue
        objPresentation.Save

        .Footer.Text = ""
        .Footer.Text = "This is a footer"
        .Footer.Visible = msoFalse
        .Footer.Visible = msoTrue
        objPresentation.Save

    End With

    strPDFFileName = sPrefix & "_Slides" & ".pdf"
    objPresentation.ExportAsFixedFormat strPDFFilePath & strPDFFileName, ppFixedFormatTypePDF, ppFixedFormatIntentPrint, _
                                        msoTrue, ppPrintHandoutHorizontalFirst, ppPrintOutputSlides

    strPDFFileName = sPrefix & "_Slides_Notes" & ".pdf"
    objPresentation.ExportAsFixedFormat strPDFFilePath & strPDFFileName, ppFixedFormatTypePDF, ppFixedFormatIntentPrint, _
                                        msoTrue, ppPrintHandoutHorizontalFirst, ppPrintOutputNotesPages


Exit Sub
Err_PDFExport:
    If Err <> 0 Then
    MsgBox Err.Description
    End If

End Sub

0 个答案:

没有答案