You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Søren Christiansen <SC...@DES.dk> on 2004/03/16 15:04:40 UTC

baseline-shift property

Hi,
Im currently planing to use FOP as a PDF render for our XML documents
(transformed (XSLT) to the FO syntax). Everything seems to work fine but I
need the render to support the baseline-shift property  -which currently
isnt supported by the release version of FOP. Therefore I want to add this
to the PDF render, but I after ive been studying the source and the
development articles in 2 days I still cant figure out how to do it. It
seems like the baseline-shift property is recognized as a implemented
Lengthproperty in 


	private void createAreaAlignmentProperties()
	...
 		// baseline-shift
        m  = new LengthProperty.Maker(PR_BASELINE_SHIFT);
        m.setInherited(false);
        m.addEnum("baseline", makeEnumProperty(BASELINE));
        m.addEnum("sub", makeEnumProperty(SUB));
        m.addEnum("super", makeEnumProperty(SUPER));
        m.setDefault("baseline");
        addPropertyMaker("baseline-shift", m);
	...
But how do I access the values (sub,super,baseline) of the property in a
parsed fo:inline block in the PDF renderer(RenderText)?. Im unable to access
it through getTrait() - Im rather uncertain whether this property is stored
in the FO tree or not?  and if not how do I store this in the FO tree?
I came across a subclass Class BaselineShiftMaker in the API doc but its not
distributed with the snapshot of the source !?

Ive problary been misunderstanding a great deal here - but I hope you  can
help me anyway ...

thanx!




Med Venlig Hilsen / Best Regards
Søren Christiansen
Systemkonsulent / System Consultant

DES A/S
Gothersgade 49
1123 København K
tlf: (+45) 33 93 11 13 / (+45) 33 93 11 44 - 287 
mob: (+45) 27 21 58 09
mail: sch@des.dk


Re: baseline-shift property

Posted by "J.Pietschmann" <j3...@yahoo.de>.
Søren Christiansen wrote:
> Therefore I want 
> to add this to the PDF render, but I after ive been studying the source 
> and the development articles in 2 days I still cant figure out how to do 
> it.
Don't bother. It is already implemented in the new code. If you want to
work at HEAD, you are welcome.

> I came across a subclass*** Class BaselineShiftMaker* in the API doc but 
> its not distributed with the snapshot of the source !?

It's code generated during the build.

J.Pietschmann

Re: baseline-shift property

Posted by Simon Pepping <sp...@leverkruid.nl>.
You are looking at the code that initialized the property subsystem at
startup. BaselineShiftMaker and all other makers play a role in this
part of the process.

All properties are stored in the FO tree. This happens during parsing
of the FO document; you do not have to do anything here. During layout
(area tree building) you can access them with fobj.getProperty(int
propId), where propId = Constants.PR_BASELINE_SHIFT, and fobj is the
node in the FO tree. See org.apache.fop.fo.FObj.java. You can also use
propertyList.get(int propId), where propertyList is the PropertyList
object of the FO node. See org.apache.fop.fo.PropertyList.java. The
return value is a LengthProperty, a subclass of Property. If I am not
mistaken, the keywords sub, super, baseline have been resolved to a
length value.

Note that you seem to be using the HEAD version from CVS, which is
still under development and is not guaranteed to be complete.

On Tue, Mar 16, 2004 at 03:04:40PM +0100, Søren Christiansen wrote:
> Hi,
> Im currently planing to use FOP as a PDF render for our XML documents
> (transformed (XSLT) to the FO syntax). Everything seems to work fine but I
> need the render to support the baseline-shift property  -which currently
> isnt supported by the release version of FOP. Therefore I want to add this
> to the PDF render, but I after ive been studying the source and the
> development articles in 2 days I still cant figure out how to do it. It
> seems like the baseline-shift property is recognized as a implemented
> Lengthproperty in 
> 
> 
> 	private void createAreaAlignmentProperties()
> 	...
>  		// baseline-shift
>         m  = new LengthProperty.Maker(PR_BASELINE_SHIFT);
>         m.setInherited(false);
>         m.addEnum("baseline", makeEnumProperty(BASELINE));
>         m.addEnum("sub", makeEnumProperty(SUB));
>         m.addEnum("super", makeEnumProperty(SUPER));
>         m.setDefault("baseline");
>         addPropertyMaker("baseline-shift", m);
> 	...
> But how do I access the values (sub,super,baseline) of the property in a
> parsed fo:inline block in the PDF renderer(RenderText)?. Im unable to access
> it through getTrait() - Im rather uncertain whether this property is stored
> in the FO tree or not?  and if not how do I store this in the FO tree?
> I came across a subclass Class BaselineShiftMaker in the API doc but its not
> distributed with the snapshot of the source !?
> 
> Ive problary been misunderstanding a great deal here - but I hope you  can
> help me anyway ...

Regards,
Simon Pepping

-- 
Simon Pepping
home page: http://www.leverkruid.nl