On 08.10.2006 23:01:13 Kia Teymourian wrote: > Hi all, > > I am working on a patch for Arabic/Persian Text decoration and > Implementation of Bidi Algorithm. > > I have some questions about it and writing to you to ask for your > assistance, > could you please answer my questions! > > 1. Can I use java 1.5 or should preferably use 1.4 or JDK 1.3.
Until further notice FOP must compile with JDK 1.3. See: http://xmlgraphics.apache.org/fop/trunk/compiling.html > 2. I have a long list of constants, Unicode Arabic Presentation forms. > This list will be used, when the algorithm search for > the correct glyphs forms. I think for the best Performance I should > define some static final arrays, and write them directly in the > class program codes. They are some defined Unicode constants, which I > get from the Arabic Unicode definition. > It is also to put them extern in some Text files, read them from > there. Which form would be the best ? Whatever is fastest. I think both approaches are fine. Have you looked at ICU4J? Maybe it already provides the functionality you need. I haven't checked. At any rate, we've considered the use of ICU4J before. > 3. I should add one or two new classes, something like > ArabicTextHandler.java > Can I add them to the package org.apache.fop.layoutmgr ? Where is the > right package? Probably org.apache.fop.layoutmgr.inline. > 4. Can I use some free TTF Fonts in my test cases, they are licensed > under GPL. > I am going to use Persian TTF fonts from > http://www.farsiweb.ir/wiki/Persian_fonts > Is there any license problems? Yes, the GPL is off-limits for software distributed by the ASF. :-( See: http://www.apache.org/legal/3party.html > 5. The writing-mode which is entered in a block or block-container > statement has to be known by the TextLayoutManager but is not delivered > correctly. TextLayoutManager.addAreas(...) is called from > BlockContainerLayoutManager.getNextKnuthElements(...) and > BlockManager.getNextKnuthElements(...). > Why? Could you please write me your comments about the implemented > writing-mode! The writing mode is communicated to child layout managers through the LayoutContext. See for example: BlockContainerLayoutManager.createLayoutContext(). Would you mind showing us a short description of your approach to implementing this? We've had people before implementing in this direction but it was often a hack and did not fit in the whole picture. I just want to spare you a late disappointment. Thanks. Some documentation will be extremely important for us, since the current team knows just about nothing about Arabic text. For example, we will not be able to determine if some output is correct or not. Jeremias Maerki