Верхний и нижний колонтитулы не отображаются при экспорте PowerPoint с использованием VBA в PDF - PullRequest
0 голосов
/ 12 июня 2019

У меня есть следующий код, который экспортирует файл PowerPoint в формат PDF как для слайдов, так и для заметок.

Код устанавливает заголовок и нижний колонтитул, которые будут отображаться в файле PDF для раздаточных материалов и заметок успешно. Однако они не отображаются в файле PDF.

Когда я открываю файл PowerPoint, а затем снимите флажок и затем проверьте верхний и нижний колонтитулы на наличие заметок и раздаточных материалов с помощью встроенного диалогового окна, а затем экспортируйте вручную в файл PDF для заметок, кажется, что верхний и нижний колонтитулы обновляются, и он работает.

Поэтому в коде я устанавливаю для свойства Visible верхнего и нижнего колонтитула значение false, а затем true, пытаясь выполнить шаги вручную, используя код, но все же они не отображаются.

Код генерирует файлы PDF, один для слайдов и один для заметок. Слайды по дизайну не показывают верхний и нижний колонтитулы, и я доволен этим. В примечаниях должны быть указаны верхний и нижний колонтитулы согласно коду, но они не показаны или показаны в предыдущих значениях, которые не заданы кодом.

Очень ценю вашу поддержку

Спасибо, Фуад Сабри

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
...