Getting a reference to an imported graphic in an anchored frame of a paragraph.

Berman, Marta marta.berman at hp.com
Thu Feb 5 11:57:18 PST 2009


 
Hi. 

I need some help. I've never written an FrameScript in my life, nor looked at the help until an hour ago, so have mercy if this is a simple question.

I need to apply the PgfLIndent of any paragraph that contains an AFrame to the imported graphic inside the frame.  I understand from the MIF file that the Para holds a pointer to the Aframe, but not the reverse. It seems that the Aframe has the information I have to change in a structure referred to in the MIF as ImportObject. 

If I understand correctly, the program flow would be to Loop ForEach(Pgf) In(ActiveDoc), save the PgfLIndent of the Pgf, get the AFrame (if any) in the paragraph, get the ImportObject of the AFrame and set the left indent.

My problem is that I can't identify the connections I see in the MIF file in the FrameScript Command and Object Reference. I don't see where the Pgf points to a contained frame. Given the AFrame, it looks like FirstGraphicInFrame will return the imported graphic. However, the  FirstGraphicInFrame returns "Object". What type object is it, and what property corresponds to the left insert?

Of course, it could be that I'm on the wrong track, and that the MIF doesn't represent the same object model that the API does. Perhaps I can loop through the graphics from FirstGraphicInDoc on down and get the attributes of the containing paragraph, but I don't see anything in the reference that hints at that.

Please throw life saver or flotation device of any type.

I'm pasting some relevant sections of the MIF, in case my description was muddled.

In this example, the anchor is in a paragraph tagged Indent, defined in the MIF:
<Pgf
  <PgfTag `Indent'>...
  <PgfLIndent  29.0 mm> ...

Therefore, I'd want to change the left placement of the graphic to 29. 
From:
<BRect  25.0 mm 4.0 mm 120.65022 mm 123.37138 mm>
To:
<BRect  29.0 mm 4.0 mm 120.65022 mm 123.37138 mm>

The paragraph that contains the imported GIF looks like this:
<Para
  <Unique 45371>
  <PgfTag `Indent'>
  <PgfNumString `'>
  <ParaLine 
   <TextRectID 53>
   <String `The Flight Finder page opens.'>
   <AFrame 10>
   <String ` '>
  > # end of ParaLine
 > # end of Para

The AFrame referred to in the Para element looks like this. The data I want to change is in the ShapeRect and/or BRect if the ImportObject:
<Frame
  <ID 10>
  <Unique 45498>
  <Pen 15>
  <Fill 15>
  <PenWidth  1.0 pt>
  <Separation 0>
  <ObColor `Black'>
  <DashedPattern 
   <DashedStyle Solid>
  > # end of DashedPattern
  <RunaroundGap  6.0 pt>
  <RunaroundType None>
  <Angle  360.0>
  <ShapeRect  15.00002 mm 23.52781 mm 150.0 mm 127.53365 mm>
  <BRect  15.00002 mm 23.52781 mm 150.0 mm 127.53365 mm>
  <FrameType Below>
  <Float No>
  <NSOffset  0.0 mm>
  <BLOffset  -87.53365 mm>
  <AnchorAlign Left>
  <Cropped No>
  <ImportObject 
   <Unique 45502>
   <Fill 7>
   <Separation 0>
   <ObColor `Black'>
   <RunaroundType Contour>
   <ImportObFileDI `<u\><u\><c\>graphics<c\>FLightFInder.gif'>
   <ImportObFile `../../graphics/FLightFInder.gif'>
   <ImportHint `0001FRAMGIF WIN3    '>
   <ImportObUpdater `GIF'>
   <ShapeRect  29.0 mm 4.0 mm 120.65022 mm 123.37138 mm>
   <BRect  29.0 mm 4.0 mm 120.65022 mm 123.37138 mm>
   <BitMapDpi 140>
   <FlipLR No>
  > # end of ImportObject
 > # end of Frame
 
Grateful for any tips.
Thanks.

Marta


More information about the framers mailing list