Supercharge your PowerPoint productivity with
Supercharge your PPT Productivity with PPTools - Click here to learn more.

Proud member of

PPTools

Image Export converts PowerPoint slides to high-quality images.

PPT2HTML exports HTML even from PowerPoint 2010 and 2013, gives you full control of PowerPoint HTML output, helps meet Section 508 accessibility requirements

Merge Excel data into PowerPoint presentations to create certificates, awards presentations, personalized presentations and more

Resize your presentations quickly and without distortion

Language Selector switches the text in your presentation from one language to another

FixLinks prevents broken links when you distribute PowerPoint presentations

Shape Styles brings styles to PowerPoint. Apply complex formatting with a single click.

PowerPoint 2007 and PowerPoint 2010: Slide image in notes pages is low-rez / jaggy

Problem

You print or make PDFs of Notes Pages from PowerPoint 2007 and find that the text and other graphics on your slide looks jagged or low-resolution.

Manual Solution

Thanks to Rick Altman (of Presentation Summit fame) for this one. For each slide in the presentation:

Here's a tip that'll make this go more quickly:

Now you have two views of the same presentation. You can select and copy images from Slide Sorter and paste into Notes Page without having to switch back and forth between views.

And another:
Use the Pick Up Position and Place Exactly tools from the free PPTools Starter Set or the PPTools THOR add-in (both are free) to automatically size and position the slide images after you paste them onto the Notes Page:

Automated VBA Solution for PPT 2007 or later

Sub BetterPDFNotes()
    Dim oSl As Slide
    Dim oNewImage As Shape
    Dim oOldImage As Shape

    For Each oSl In ActivePresentation.Slides
        Call oSl.Export(ActivePresentation.Path & "\" & CStr(oSl.SlideIndex) & ".EMF", "EMF")
        Set oOldImage = NotesPageSlidePlaceholder(oSl)
        If Not oOldImage Is Nothing Then
            Set oNewImage = oSl.NotesPage.Shapes.AddPicture( _
                  ActivePresentation.Path & "\" & CStr(oSl.SlideIndex) _
                  & ".EMF", False, True, 0, 0, 200, 200)
            With oNewImage
                .Left = oOldImage.Left
                .Top = oOldImage.Top
                .height = oOldImage.height
                .width = oOldImage.width
                .Tags.Add "TempImage", "YES"
            End With
            ' and after it's all working to perfection
            ' ooldimage.Delete
            ' or just leave the original hidden there behind the EMF
        End If
    Next

End Sub

Function NotesPageSlidePlaceholder(oSl As Slide) As Shape
' Returns the slide placeholder on the notes page
    Dim oSh As Shape
    For Each oSh In oSl.NotesPage.Shapes
        If oSh.Type = msoPlaceholder Then
            If oSh.PlaceholderFormat.Type = ppPlaceholderTitle Then
                Set NotesPageSlidePlaceholder = oSh
                Exit Function
            End If
        End If
    Next
End Function

Automated VBA Solution with improvements for PPT 2010

Here's another approach suggested by mattaw2001 on Microsoft Answers in response to the above, and problems getting it to work correctly in PPT 2010. I've modified it quite a bit to suit my own way of doing things, but left mattlaw2001's improvements intact (but see below for an even further improved version from mattlaw2001):

Sub FixUpNotePageSlideImages()

Dim lOriginalView As Long
Dim oSl As Slide
Dim oSh As Shape
Dim old_placeholder As Shape
Dim oNewSh As Shape

' Store user's original view
lOriginalView = ActiveWindow.ViewType
' Change to notespage view
ActiveWindow.ViewType = ppViewNotesPage

For Each oSl In ActivePresentation.Slides

    oSl.Copy

    ' have we already run this code?  If so, the original
    ' slide image has been replaced and tagged:
    For Each oSh In oSl.NotesPage(1).Shapes
        If Len(oSh.Tags("NEWNOTESPLACEHOLDER")) > 0 Then
            ' found it
            Set old_placeholder = oSh
            Exit For
        End If
    Next

    If old_placeholder Is Nothing Then
        ' no previously replaced shape here, so get the original
        ' slide image placeholder:
        For Each oSh In oSl.NotesPage(1).Shapes
            If oSh.Type = msoPlaceholder Then
                If oSh.PlaceholderFormat.Type = ppPlaceholderTitle Then
                    Set old_placeholder = oSh
                    Exit For
                End If
            End If
        Next
    End If

    ' If there's no slide image placeholder on the notes page,
    ' skip this slide

    If old_placeholder Is Nothing Then
        ' nothing to do here

    Else    ' it's ok to continue

        With ActiveWindow
            .View.GotoSlide (oSl.SlideIndex)
            .View.Paste
        End With

        With ActiveWindow.Selection.ShapeRange(1)
            .Left = old_placeholder.Left
            .Top = old_placeholder.Top
            .Width = old_placeholder.Width
            .Height = old_placeholder.Height
            .Tags.Add "NEWNOTESPLACEHOLDER", "YES"
            .Line.Weight = 1
        End With

        old_placeholder.Delete
        Set old_placeholder = Nothing

    End If

Next

' Restore original view
ActiveWindow.ViewType = lOriginalView

End Sub

mattaw2001 notes that PowerPoint will render some slide objects as bitmaps no matter what:

Mattaw2001's even FURTHER improved version

There's a problem with converting slides to EMFs for use on notes pages. Here ... we'll let mattaw2001 explain it:

The filesize of a complex, large presentation could easily balloon to larger than 500 megabytes!

Here is the old VBA macro but with a new addition - a cleaner subroutine that deletes the copy'n'pasted slide and puts the microsoft low res placeholder back!

Convert between the two at the click of a button for those high quality prints to PDF or high quality paper output. Both are non-destructive UNLESS YOU HAVE HEAVILY CUSTOMIZED YOUR NOTES PAGES ALREADY. You have been warned...

And here's the updated code:

Sub FixUpNotePageSlideImages()

Dim lOriginalView As Long
Dim oSl As Slide
Dim oSh As Shape
Dim old_placeholder As Shape

' Store user's original view
lOriginalView = ActiveWindow.ViewType
' Change to notespage view
ActiveWindow.ViewType = ppViewNotesPage

For Each oSl In ActivePresentation.Slides

    oSl.Copy

    ' have we already run this code?  If so, the original
    ' slide image has been replaced and tagged:
    For Each oSh In oSl.NotesPage(1).Shapes
        If Len(oSh.Tags("NEWNOTESPLACEHOLDER")) > 0 Then
            ' found it
            Set old_placeholder = oSh
            Exit For
        End If
    Next

    If old_placeholder Is Nothing Then
        ' no previously replaced shape here, so get the original
        ' slide image placeholder:
        For Each oSh In oSl.NotesPage(1).Shapes
            If oSh.Type = msoPlaceholder Then
                If oSh.PlaceholderFormat.Type = ppPlaceholderTitle Then
                    Set old_placeholder = oSh
                    Exit For
                End If
            End If
        Next
    End If

    ' If there's no slide image placeholder on the notes page,
    ' skip this slide

    If old_placeholder Is Nothing Then
        ' nothing to do here

    Else    ' it's ok to continue

        With ActiveWindow
            .View.GotoSlide (oSl.SlideIndex)
            .View.Paste
        End With

        With ActiveWindow.Selection.ShapeRange(1)
            .Left = old_placeholder.Left
            .Top = old_placeholder.Top
            .Width = old_placeholder.Width
            .Height = old_placeholder.Height
            .Tags.Add "NEWNOTESPLACEHOLDER", "YES"
            .Line.Weight = 1
        End With

        old_placeholder.Delete
        Set old_placeholder = Nothing

    End If

Next

' Restore original view
ActiveWindow.ViewType = lOriginalView

End Sub

Sub CleanFixUpNotePageSlideImages()

Dim lOriginalView As Long
Dim oSl As Slide
Dim oSh As Shape
Dim old_placeholder As Shape

' Store user's original view
lOriginalView = ActiveWindow.ViewType
' Change to notespage view
ActiveWindow.ViewType = ppViewNotesPage

For Each oSl In ActivePresentation.Slides

    ' have we already run this code?  If so, the original
    ' slide image has been replaced and tagged:
    For Each oSh In oSl.NotesPage(1).Shapes
        If Len(oSh.Tags("NEWNOTESPLACEHOLDER")) > 0 Then
            ' found it
            Set old_placeholder = oSh
            Exit For
        End If
    Next

    If old_placeholder Is Nothing Then
        ' nothing to do here

    Else    ' it's ok to continue

        old_placeholder.Delete
        Set old_placeholder = Nothing

        ' restore the original microsoft slide placeholder
        oSl.NotesPage.Shapes.AddPlaceholder ppPlaceholderTitle

    End If

Next

' Restore original view
ActiveWindow.ViewType = lOriginalView

End Sub

See How do I use VBA code in PowerPoint? to learn how to use this example code.


Did this solve your problem? If so, please consider supporting the PPT FAQ with a small PayPal donation.
Page copy protected against web site content infringement by Copyscape Contents © 1995 - 2022 Stephen Rindsberg, Rindsberg Photography, Inc. and members of the MS PowerPoint MVP team. You may link to this page but any form of unauthorized reproduction of this page's contents is expressly forbidden.

Supercharge your PPT Productivity with PPTools

content authoring & site maintenance by
Friday, the automatic faq maker (logo)
Friday - The Automatic FAQ Maker

PowerPoint 2007 and PowerPoint 2010: Slide image in notes pages is low-rez / jaggy
http://www.pptfaq.com/FAQ00974_PowerPoint_2007-_Slide_image_in_notes_pages_is_low-rez_-_jaggy.htm
Last update 16 November, 2018
Created: