Wenas,
Estoy haciendo un trabajo de impresión y tras mucha lucha ya funciona todo, pero tengo un problemilla,
que pienso que igual alguién sabe resolver facil.
Mi problema es que uso la funcion measureHeightOfItemsUptoMaxHeight, para saber cuantas filas caben por
página y que asi mi impresión no tenga filas partidas.
El problema es que tengo que dar distintos estilos según el tipo de nodo xml que tenga, para ello tengo la siguiente función de estilo asignada al datagrid y a la columna del mismo.

Código ActionScript :

         public function formatearEtiquetas(item:Object, column:AdvancedDataGridColumn):Object{
            if (item.@type == "block"){ 
               return {textDecoration:"underline", fontWeight:"bold"}
            }
            else if (item.@type =="blockAbrible"){ 
               return {textDecoration:"none", fontWeight:"bold"}
            }
            else{ 
               return {textDecoration:"none", fontWeight:"normal"}
            }   
         }


EL problema surge porque en la función measureHeightOfItemsUptoMaxHeight, se llama a la funcion al siguiente grupo de funciones para saber la altura de cada celda de cada fila (en mi caso 1 celda por fila).

Código ActionScript :

                    item = getMeasuringRenderer(c, false);
                    setupRendererFromData(c, item, data);
                    ch = Math.max(ch, variableRowHeight ? item.getExplicitOrMeasuredHeight() + paddingBottom + paddingTop : rowHeight);
                


El problema está en que en la función getMeasuringRenderer no se tiene en cuenta que la columna tiene una función de estilo y por tanto calcula el tamaño sin contar con negritas ni subrayado.

Código ActionScript :

mx_internal function getMeasuringRenderer(c:AdvancedDataGridColumn, forHeader:Boolean, data:Object):IListItemRenderer
    {
        var factory:IFactory = columnItemRendererFactory(c,forHeader,data);

        var item:IListItemRenderer = measuringObjects[factory];
        if (!item)
        {
            item = columnItemRenderer(c, forHeader, data);
            item.visible = false;
            item.styleName = c;
            listContent.addChild(DisplayObject(item));
            measuringObjects[factory] = item;
        }

        return item;
    }


Eso es lo que creo que esta pasando, lo que habia pensado era en crear una clase de tipo columna para que esta función getMeasuringRenderer cuando crea la factoria la cree de este tipo. Pero no tengo claro que funcione, ya que esta nueva clase de columna seguirá decidiendo el tipo de letra en base a una función de estilo y por tanto no se si funcionará.

A alguién se le ocurre algo??? Por favor si teneis ideas decirmelas, que me tiene esto ya desquiciada, 3 semanas para imprimir un triste informe :|
Gracias!!
Byes