PowerPoint 2007: 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 PPTLive fame) for this one. For each slide in the presentation:
- Go to Slide Sorter view and copy the slide's thumbnail (click the thumbnail, press Ctrl + C)
- Switch to Notes Page view.
- Delete the existing slide image placeholder.
- Paste (Ctrl + V) to put a better quality image of your slide on the notes page. Position and size the new image to suit your needs.
Here's a tip that'll make this go more quickly:
- Switch to Notes Page view.
- On the View tab, Window group, click New Window.
- Switch to Slide Sorter view.
- On the View tab, Window group, click Arrange All.
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 to automatically size and position the slide images after you paste them onto the Notes Page:
- Click the original slide image on the Notes Page to select it
- Click the button to the left of the hammer icon on the Starter Set toolbar. This memorizes the position of the slide image.
- Then after pasting in each new slide image, click the hammer icon to size and position it automatically.
Automated VBA Solution
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
See How do I use VBA code in PowerPoint? to learn how to use this example code.