Glenn Adams commented on FOP-1969:

Yes, this is the basic approach one would take. You will need to track down all 
of the methods/fields where char is is used and change it to int or add a new 
method with an int signature (for methods). Then you will need to find all call 
sites for these use sites and change them to extract Unicode code points 
(integers in the range [0,1114111]) to pass to the changed/new methods.

You will need to do this while not breaking the current tests and you will need 
to add new tests to cover non-BMP use cases.

You will probably want to create a fork of the FOP repository in github and do 
your work on a branch of that fork.

Good Luck,

> Surrogate pairs not treated as single unicode codepoint for display purposes
> ----------------------------------------------------------------------------
>                 Key: FOP-1969
>                 URL: https://issues.apache.org/jira/browse/FOP-1969
>             Project: FOP
>          Issue Type: Improvement
>          Components: unqualified
>    Affects Versions: trunk
>         Environment: Operating System: All
> Platform: All
>            Reporter: Glenn Adams
>         Attachments: testing.fo, testing.fo, testing.pdf, testing.pdf, 
> testing.xml, testing.xsl
> unicode codepoints outside of the BMP (base multilingual plane), i.e., whose 
> scalar value is greater than 0xFFFF (65535), are coded as UTF-16 surrogate 
> pairs in Java strings, which pair should be treated as a single codepoint for 
> the purpose of mapping to a glyph in a font (that supports extra-BMP 
> mappings);
> at present, FOP does not correctly handle this case in simple (non complex 
> script) rendering paths;
> furthermore, though some support has been added to handle this in the complex 
> script rendering path, it has not yet been tested, so is not necessarily 
> working there either;

This message was sent by Atlassian JIRA

Reply via email to