Access Keys:
Skip to content (Access Key - 0)
Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

Q: iWork - This document can't be opened because it's too old

Answer

With newer versions of iWork ('12 and newer), attempts to open older documents (iWork '08 and earlier) may result in a dialog box like the following:


Obviously, if you have access to iWork '09, that is the best way to open your document and save it in a newer format. However, there are alternatives available.

iWork '09 Trial

Some community members have reported success by downloading the iWork '09 Trial from Apple's website, and installing it, but that may present a problem on newer versions of MacOS (10.9 and above).

Edit the file's metadata

Make a backup!
This is a potentially destructive operation, and any errors during this procedure may render your file unusable. You are encouraged to make a backup copy of your file before trying this procedure.

This procedure is intended for advanced users only who are familiar with the Mac OS Terminal.

1. Select the file in the Finder, and press Cmd-C to copy the file to the clipboard.
2. Open the Terminal application, and at the prompt, type cd, press space, and then press Cmd-V, which should paste the full path to your file, and press Enter.
3. Type ls index*.gz, and you should see output containing one of the following filenames: index.xml.gz, index.apxl.gz
NOTE: The remainder of the steps will assume the file was index.xml.gz. If the file was index.apxl.gz instead, you should substite index.apxl.gz for index.xml.gz, and index.apxl for index.xml in the steps below. If nothing was displayed, read the section on iWork '06 below.
4. At the prompt, type gunzip index.xml.gz and press Enter.
5. At the prompt, type this command:

sed -e 's-:version="72007061400"-:version="92008102400"-g' -i '' index.xml
  • Remember to replace index.xml with index.apxl if the file in step 3 was index.apxl.gz.

6. At the prompt, type gzip index.xml.

  • Again, replace the file name if necessary.

7. Go back into the finder, and double-click on your file, and it should open correctly.

Advanced Users
You may infer from step 5 above that 72007061400 is the version string for the 6/14/07 upate to iWork '07, and 92008102400 is the 10/24/08 release of iWork '09. In the event the procedure above doesn't work, you're encouraged to examine the XML/APXL file directly, identify the version string, and replace it with the iWork '09 version string.

iWork '06

Some versions of iWork '06 and earlier do not have gzip-compressed XML files. Instead, they have uncompressed .apxl files in the bundle. Repeat steps 1-2 above, then continue below:

3. Type ls *.apxl. The prompt should return a file named presentation.apxl for Keynote document, or something else that ends in .apxl for Pages and Numbers.
4. Type open -a TextEdit.app followed by a space and the name of the file from the previous step.
5. The file will open in TextEdit. Near the top of the file, find a line that looks like this:

<application-version>update3-20030829_1</application-version>

(The text between the <application-version> tags may differ.)
Change that line, so it reads like this:

<application-version>92008102400</application-version>

6. Save the file and quit TextEdit.
7. Open your file in the Finder, and it should open correctly.

Shell Script

The following shell script may be used to automate the conversion. Use it at your own risk, and ensure you have a full backup of your files before using it.

#!/bin/sh

BUNDLE="$1"

fix_version() {
    file=$1
    basename=$(basename "$file" ".gz")
    newfile="$(dirname "$file")/$basename"
    if ! gunzip --stdout "$file" | fgrep -q 'version="72007061400'; then
        echo "Could not match iWork 07 version string!" >&2
        exit 1
    fi
    cp "$file" "${file}.bkup"
    gunzip "$file"
    sed -e 's-:version="72007061400"-:version="92008102400"-g' -i '' "$newfile"
    gzip "$newfile"
}

if [ -z "$BUNDLE" ]; then
    echo "Usage: $0 [ file.key | file.pages | file.numbers ]" >&2
    exit 1
elif ! echo "$BUNDLE" | egrep -q '\.(numbers|pages|key)$'; then
    echo "That does not appear to be an iWork file." >&2
    exit 1
fi


if [ -f "${BUNDLE}/index.xml.gz" ]; then
    fix_version "${BUNDLE}/index.xml.gz"
elif [ -f "${BUNDLE}/index.apxl.gz" ]; then
    echo "Compatiblity: Using index.apxl.gz instead!" >&2
    fix_version "${BUNDLE}/index.apxl.gz"
else
    APXL="$(shopt -s nullglob; echo "${BUNDLE}/*.apxl")"
    if [ -n "$APXL" ]; then
        echo "This appears to be an iWork '05 or earlier file."
        echo "You must edit this file:"
        echo "   $APXL"
        echo "by hand, and replace the contents of the <application-version>"
        echo "XML tag with: 92008102400"
    else
        echo "Don't know how to fix this kind of file!" >&2
        exit 1
    fi
fi
exit 0
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Last Modified:

page-info: unable to locate page


Get Help

Request help
from the Help Desk
Report a security incident
to the Security Team
Feedback
This product/service is:
Easy to use
Average
Difficult to use

This article is:
Helpful
Inaccurate
Obsolete
Adaptavist Theme Builder (4.2.3) Powered by Atlassian Confluence 3.5.13, the Enterprise Wiki