[ 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