none
Strange EscherUserDefined objects in .ppt saved by PowerPoint 2011 for Mac RRS feed

  • Question

  • My Java application programmatically creates .ppt files that can be downloaded for viewing or editing. The output is editable in all versions of PowerPoint except PowerPoint 2011 for Mac which crashes if the number of shapes exceeds a certain threshold. To be precise, if the number of shapes in a generated file is small then  PowerPoint 2011 for Mac can edit / save this file OK, and if the number of shapes exceeds the limit (roughly 15K of shapes) then PowerPoint 2011 dies.

    The second strange thing is that the files saved by PowerPoint 2011 for Mac are almost ten times larger than the originals. For instance, if the source .ppt file is 250K then PowerPoint 2011 for Mac re-saves it as 3.1 MB!

    It appears that PowerPoint 2011 for Mac attaches additional data to every shape in the presentation and this addition data is a mini-OOXML package containing two entries: downrev.xml and shapexml.xml. Very schematically it can be outlined as follows:

    Original shape container as generated by my Java program:

    EscherSpContainer(type=0xF004)
     EscherSp(type=0xF00A)
     EscherOPT(type=0xF00B)
    

    Modified shape container as saved by PowerPoint 2011:

    EscherSpContainer(type=0xF004)
     EscherSp(type=0xF00A)
     EscherOPT(type=0xF00B)
     EscherUserDefined(type=0xF122)
      The contents is a OOXML package containing the following entries:
       _rels
        [Content_Types].xml
       drs
        downrev.xml
        shapexml.xml
    
     
    The size of the attached OOXML package varies from 2100 to 2600 bytes. Multiplied by the number of shapes it perfectly explains why the resulting .ppt is larger in size.


    Below is some statistics:

    #slides  #shapes  Original size    Size after save in PowerPoint 2011
    1      103      29 KB           299 KB
    5      1059     250 KB           3.1 MB
    10     2355     508 KB           6.6 MB
    20     4190     864 KB          11.5 MB
    50     11426    2.4 MB          31.4 MB
    77     15880    3.3 MB         PowerPoint crashes
    
     
    Also note that the time to save a .ppt file in PowerPoint 2011 growths exponentially with the number of shapes. Saving of a file with one slide and 100 shapes takes less than a second, but saving of a file with 50 slides and more than 10K of shapes takes more than a minute! 

    Is there a way to bypass creation of this EscherUserDefined data? Is there a flag / atom that I can set on the document or master level that will tell the consumer application (in my case PowerPoint 2011 for Mac) to keep the file small ?

    Regards,
    Yegor Kozlov
    Wednesday, March 23, 2011 8:53 AM

Answers

All replies

  • Hi Yegor:

    I have alerted protocol documentation team about your inquiry. A member of the team will be in touch soon.


    Regards, Obaid Farooqi
    • Proposed as answer by JasonWodicka Monday, December 7, 2015 7:31 PM
    Wednesday, March 23, 2011 4:34 PM
    Owner
  • Yegor,

    This forum is for the support of the Open Specifications Documentation. Your question does not seem relevant to this set of published specifications. Your question seems more relevant to this forum: Office IT Pro General Discussions. I suggest you ask your question again in that forum.

     

    • Proposed as answer by King Salemno Friday, March 25, 2011 1:41 PM
    • Marked as answer by King Salemno Wednesday, July 6, 2011 12:46 PM
    Friday, March 25, 2011 1:41 PM
  • Please re-read my post. My software is based on the Open Specifications and I asked a clear question why PowerPoint 2011 for Mac interprets the output differently. I provided a detailed analysis what is wrong and asked a question how to bypass creation of the extra records that are created by PowerPoint 2011 for Mac.

    I read many other  posts on this forum and judging by the answers it is the proper place to post my question, it is about the .ppt format, not about Office General Discussions.

     

    Yegor

    Tuesday, March 29, 2011 5:07 PM
  • Please see Yegor's prior posts at http://social.technet.microsoft.com/Forums/en-GB/officeitpro/thread/8937eecb-7509-4197-8a1c-9fbd80bbc025 and http://www.officeformac.com/ms/ProductForums/PowerPoint/4312

    This is a classic byzantine runaround. Your proposed answer is no answer.

    The point is that PowerPoint 2011 for Mac is "unexpectedly" adding XML constructs to a binary file. This breaks the binary format for our use in PowerPoint 2011. We want to create a file that does not cause Mac PowerPoint 2011 to crash by expanding the file.

    The question that we are in no position to answer is this:

    Is there something in the specification of the file that will turn off this new "feature" of PowerPoint 2011 for Mac, or is this a bug in PowerPoint 2011 for Mac that is being fixed?

    We are looking for that answer.

    We are long time contributors to Apache POI and there are others in our community who have noticed this issue as well. It's not like we don't know what we are doing here. If there is something we can do in the generation of PowerPoint binary files in Apache POI it will go in. We are currently working on Beta Release Artifacts and it would be very helpful to our open source community to get a fix into our Apache POI 3.8 release.

    Tuesday, March 29, 2011 5:55 PM
  • Yegor,

    This forum is for the support of the Open Specifications Documentation. Your question does not seem relevant to this set of published specifications. Your question seems more relevant to this forum:Office IT Pro General Discussions. I suggest you ask your question again in that forum.

    • Marked as answer by King Salemno Wednesday, July 6, 2011 12:46 PM
    Wednesday, July 6, 2011 12:46 PM