MacOS – New version of Keynote won’t open old versions

iworkkeynotemacos

When using a newer version of iWork software such as on Yosemite to open older documents and presentations, Pages reports "This document can’t be opened because it’s too old. To open it, save it with Pages ’09 first." and Keynote reports "This presentation can’t be opened because it’s too old. To open it, save it with Keynote ’09 first." How can I open these files without finding and installing an old version of iWork?

Edit: The latest update, version 6.6 (2550) (as of October 16, 2015) opens Keynote '06 and '08 version files. I verified this on a file from 2007 and it works properly.

Best Answer

This solution requires using Terminal. Do the following:

  1. Make a backup copy of your file
  2. Open Terminal.app
  3. In the Terminal window, type cd (that's with a space after the cd) then drag your file to the window. It should insert the full path of your file (e.g. /Users/me/Documents/My\ Great\ File.pages).
  4. Copy and paste the following command as a single line and press Return: gunzip --stdout index.apxl.gz | sed 's-:version="72007061400"-:version="92008102400"-g' > index.apxl
  5. If you don't see any errors (such as No such file or directory), now type rm index.apxl.gz and press Return
  6. Type exit and press Return and try to open your file. It may give you a compatibility problem report but should open.

Explanation

The file index.apxl.gz is a compressed XML file that holds information about your document. The command in step 4 uncompresses the file and runs it through a search-and-replace program which looks for the version 72007061400 and replaces it with the version 92008102400 (I don't know what these versions mean but it appears to work). It outputs to an uncompressed version of the file, which is why in step 5 you remove the original, compressed file (iWork will used compressed or uncompressed files).

Notes

If step 4 gives you a No such file or directory error, it's possible the index.apxl or index.apxl file is uncompressed, in which case you can replace the step 4 command with sed 's-:version="72007061400"-:version="92008102400"-g' index.apxl | gzip > index.apxl.gz, and step 5 with rm index.apxl.

This solution could be adapted to an Automator action by someone motivated.

Source

This method is adapted from a comment on this Google+ post.