I'm not sure this is the appropriate forum for this question, but hopefully 
someone here can help me find the appropriate forum.

I need to generate a .pptx file with embedded OLE objects in it.  Through 
research and trial and error, I think I managed to figure out how to generate 
the appropriate XML files to do this.  The usermodel stuff in xslf doesn't 
support this yet so I had to learn how to do it at a lower level using the 
org.openxmlformats.schemas.presentationml.x2006 and 
org.openxmlformats.schemas.drawingml.x2006.main classes as well as direct 
manipulation of the underlying XML objects provided by XML beans.

The issue I have now doesn't seem to be related to the XML itself though.  When 
trying to open the embedded object in the .pptx file, I get the following error 
message:

"The server application, source file, or item can't be found, or returned an 
unknown error.  You may need to reinstall the server application."

Note that is is *NOT* due to any misconfiguration of the OLE provider.  I have 
a .pptx file that was created by cutting/pasting an OLE object into a slide.  
This .pptx file works fine.  My POI-based code generates pretty much identical 
XML (few minor non-functional differences), but my .pptx file does not work.  I 
also wrote a simple POI test program that reads in an existing .pptx file and 
just writes it back out to a different file.  Using the working .pptx as the 
input, the generated .pptx file from this code also exhibits the same behavior 
(i.e. I can open the .pptx file but trying to open or edit the embedded OLE 
object fails).  The code is below:

        XMLSlideShow ppt = null;
        try {
            ppt = new XMLSlideShow(new FileInputStream(args[0]));
        } catch (FileNotFoundException e2) {
            // TODO Auto-generated catch block
        } catch (IOException e2) {
            e2.printStackTrace();
        }
        try {
            FileOutputStream out = new FileOutputStream(args[1]);
            ppt.write(out);
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

Finally, I tried a similar experiment by just copying the working .pptx in 
Windows, unzipping using Windows, and rezipping it.  No further changes were 
made to the contained files.  Here, the rezipped .pptx file fails with the same 
behavior.  So, this doesn't seem to be an issue with the POI code -- it seems 
to be a more fundamental issue with generating the .pptx file from the 
constituent parts.

I'm running PowerPoint 2010 (don't currently have access to an older version).  
The only thing I've found that comes close to describing the same type of 
problem is the following link 
http://social.msdn.microsoft.com/Forums/en-GB/oxmlsdk/thread/957bc111-86c6-4548-9a2e-917051ccb46d. 
 This link says that it has something to do with how the embedded 
oleObject1.bin file is zipped and suggests that the problem is a bug in 
PowerPoint 2010.  There is no further information so I don't know whether to 
believe this or not or what to do if it is a PowerPoint bug.

So, while this does not appear to be a POI related issue, I was hoping someone 
could point me to a forum or a person who might be able to help me track this 
down.  Otherwise, I'm kind of stuck.  Anyone else run into similar issues?  
Anyone else suspect that how the file is zipped might affect the embedded OLE 
functionality?  Seems dubious to me, but everything else is the same between 
the good and bad .pptx files, so maybe it is how it is zipped.


Thanks,
Tony


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to