[jira] [Updated] (FOP-2092) Fop invalid position combining mark for Thai text (CTL)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (FOP-2092) Fop invalid position combining mark for Thai text (CTL)

Simon Steiner (Jira)

     [ https://issues.apache.org/jira/browse/FOP-2092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Glenn Adams updated FOP-2092:
-----------------------------

    Assignee: Glenn Adams  (was: fop-dev)
   

> Fop invalid position combining mark for Thai text (CTL)
> -------------------------------------------------------
>
>                 Key: FOP-2092
>                 URL: https://issues.apache.org/jira/browse/FOP-2092
>             Project: Fop
>          Issue Type: Bug
>          Components: fonts
>    Affects Versions: all
>         Environment: Operating System: All
> Platform: PC
>            Reporter: Nattapong Sirilappanich
>            Assignee: Glenn Adams
>         Attachments: data.xslt, fop.log, fopThai5.pdf, test.fo.xml, test.pdf, thaidata.xml, thai.fo, Untitled.jpg
>
>
> 1. In order to make Thai glyph substitution work, the language tag must be "dflt" instead of "th". This is because many popular Thai font use "dflt".
> 2. Using "dflt" language, both GSUB and GPOS are used. The problem is after it used, all glyph are placed further to the right.
> Notes:
> 1. Many Thai combining glyph have negative alignment. I suspect this is involved in miss alignment calculation.
> 2. The ratio of displacement seem irrational. If it shifted to the left by the same ratio, it is still invalid.
> Question:
> Should "dflt" being load by default ?
> XML Data for testing:
> <?xml version="1.0" encoding="UTF-8"?>
> <data>กุญญูฐฐูฏฏูฎฎูบบ่บี่ปป่ปี่กำปำถํ้า</data>
> XSLT for testing:
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
> <fo:layout-master-set>
> <fo:simple-page-master master-name="A4">
> <fo:region-body />
> </fo:simple-page-master>
> </fo:layout-master-set>
> <fo:page-sequence master-reference="A4">
> <fo:flow flow-name="xsl-region-body">
> <fo:block script="thai" language="dflt" font-size="32pt" font-family="AngsanaUPC">
> <xsl:value-of select="data" />
> </fo:block>
> </fo:flow>
> </fo:page-sequence>
> </fo:root>
> </xsl:template>
> </xsl:stylesheet>
> The fop.xconf has added font into fonts section of applicaton/pdf renderer:
> <font embed-url="file:///c:/windows/fonts/angsau.ttf" kerning="yes">
>   <font-triplet name="AngsanaUPC" style="normal" weight="normal"/>
> </font>
> The Java code used to reproduce:
> FopFactory fopFac = FopFactory.newInstance(new File("fop.xconf"));
> OutputStream outputStream = new BufferedOutputStream(new FileOutputStream("c:\\temp\\fopThai.pdf"));
>
> Fop fop = fopFac.newFop(MimeConstants.MIME_PDF, outputStream);
>
> TransformerFactory transFac = TransformerFactory.newInstance();
> Source xslData = new StreamSource(new File("data.xslt"));
> Transformer trans = transFac.newTransformer(xslData);
> Result res = new SAXResult(fop.getDefaultHandler());
> Source xmlData = new StreamSource(new File("thaidata.xml"));
> trans.transform(xmlData, res);
>
> outputStream.close();

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira