Using the FDK to manipulate Graphics in FrameMaker 7x...

Jeremy H. Griffith jeremy at omsys.com
Thu Apr 9 14:39:35 PDT 2009


On Thu, 09 Apr 2009 11:30:12 -0400, Dan Glover <dglover at opnet.com> wrote:

>We're trying to use the FDK to get at the contents of graphics in a 
>document.  The graphics are pasted in the document, and have a facet 
>type of OLE2.  

We do that in Mif2Go, but not in the FDK plugin.  We do it
while processing the MIF.  From Frame's FDK, a facet is an
opaque container.  But in MIF, you can see them all.

>Unfortunately, the FDK docs don't give much 
>information about facets.  I can get data out of a facet if I know 
>its name.  For example, F_ApiGetUBytesByName() uses the docId and 
>objId for the graphic object, and then the facet name to get the 
>given data.  I manage to use "OLE2" for a facet name, and that works 
>for FrameMaker 7.2.  But it doesn't work for FrameMaker 7.0!  The FDK 
>docs don't describe facet names anywhere, and I have no way to know 
>why it works for one version and not another.  I can only assume that 
>OLE2 wasn't supported in 7.0???  I tried OLE2, OLE1, and OLE with no 
>luck.  I can get TIFF and DIB facets out of 7.0, though.

An OLE facet is really a little file system, using a
proprietary and undocumented Microsoft file system.
We reverse-engineered it before that became illegal
under the DMCA.  It was a long, nasty job.

The only Frame docs I know of on facets are in the
"Integrating Applications with FrameMaker" book
published by Frame Tech in December 1989.  Print
only.  I believe Adobe discontinued it.

>A related issue...  I want to extract the bitmap representation of 
>the OLE image, and create a separate file without the OLE 
>information.  But since I have no idea what the facet data looks 
>like, I don't know what to save to the file and what to throw 
>away.  Is there any way to learn about what's actually inside an image facet?

An OLE facet contains several "files" in its system, and
at least one of them is WMF, used to provide the display
you see in Frame when you are not editing the object.
We scan the files and try to identify the correct WMF
(there may be several); as an option, we'll write out
*all* the WMFs we see in there.

There's one case where it's very simple, discovered by a 
customer of ours: Visio.  It turns out that Visio uses the
OLE format as its own native file type.  So if you export
the OLE facets with Mif2Go (which can be done using the
free demo version), you can rename them form .ole to .vsd
and they will work.

>Thanks for any info or experiences...

HTH!

-- Jeremy H. Griffith, at Omni Systems Inc.
  <jeremy at omsys.com>  http://www.omsys.com/



More information about the framers mailing list