Thanks. I tried that. And I always get "41"?!

Unless of course I need to refresh the frame somehow.

Here is what I am doing:

Object writerShape = documentFactory.createInstance(
"com.sun.star.text.TextFrame" );
XTextContent xTextContentShape = ( XTextContent )
UnoRuntime.queryInterface( XTextContent.class,
writerShape );

XPropertySet xTextContentPropertySet = ( XPropertySet
) UnoRuntime.queryInterface( XPropertySet.class,
                                                      
                                  xTextContentShape );

xTextContentPropertySet.setPropertyValue( "Width", new
Integer( width ) );
xTextContentPropertySet.setPropertyValue( ANCHOR_TYPE,
TextContentAnchorType.AT_FRAME );
xTextContentPropertySet.setPropertyValue( TEXT_WRAP,
WrapTextMode.NONE );
xTextContentPropertySet.setPropertyValue(
FRAME_IS_AUTOMATIC_HEIGHT, new Boolean( true ) );

XPropertySet xShapeProps = ( XPropertySet )
UnoRuntime.queryInterface( XPropertySet.class,
writerShape );

// Setting the vertical position
xShapeProps.setPropertyValue( VERT_ORIENT, new Short(
VertOrientation.NONE ) );
xShapeProps.setPropertyValue( HORI_ORIENT, new Short(
HoriOrientation.NONE ) );

// I need to recalculate x & y for the header
// Setting the vertical position
xShapeProps.setPropertyValue( HORI_ORIENT_POSITION,
new Integer( ( x.intValue() ) ) );
xShapeProps.setPropertyValue( VERT_ORIENT_POSITION,
new Integer( ( y.intValue() ) ) );
// making sure that text can overlap
xShapeProps.setPropertyValue( BACK_TRANSPARENT,
Boolean.TRUE );
xShapeProps.setPropertyValue( OPAQUE, Boolean.FALSE );

XText xShapeText = ( XText )
UnoRuntime.queryInterface( XText.class, writerShape );

mxDocText.insertTextContent( xParaCursor,
xTextContentShape, false );

xShapeText.setString( textContentString +
getDebugString( x, y, width, height ) + getRNDString()
);

// xTextContentPropertySet also gives me the same
result
Integer heightInteger =
(Integer)xShapeProps.getPropertyValue(
FRAME_HEIGHT_ABSOLUTE );
      
System.out.println("heightInteger " + heightInteger);

--- Stephan Wunderlich <[EMAIL PROTECTED]>
wrote:

> Hi Kent,
> 
> > If you have a textframe and you it is autosized is
> > there no way of finding out how big it is after
> you
> > put the text content in it?
> > 
> > I have tried everything. I have three text frames
> of
> > various sizes (due to various content) and they
> always
> > return the same size. 
> > 
> > I even tried going through the drawpage, but oddly
> > that didn't work.
> > 
> > XDrawPage xDrawPage =
> xDrawPageSupplier.getDrawPage();
> > XShapes xShapes = ( XShapes )
> > UnoRuntime.queryInterface( XShapes.class,
> xDrawPage );
> > 
> > int shapeCount = xShapes.getCount();
> > for ( int i = 0; i < shapeCount; i++ )
> > {
> > Object shapeObj = xShapes.getByIndex( i );
> > XShape shape = ( XShape )
> UnoRuntime.queryInterface(
> > XShape.class, shapeObj );
> > 
> > Size size = shape.getSize();
> >  
> > }
> 
> a TextFrame has the properties "FrameHeightAbsolute"
> and 
> "FrameWidthAbsolute" which, as far as I know,
> contain the values you 
> look for.
> 
> Hope that helps
> 
> Regards
> 
> Stephan
> 
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to