[ https://issues.apache.org/jira/browse/FOP-2969?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Volker Kunert updated FOP-2969: ------------------------------- Attachment: (was: expected-din-spec-sequences.fo.pdf) > Accented Letters composed of Unicode base letter and combining accent are > rendered wrong as the first letter of a word. > ------------------------------------------------------------------------------------------------------------------------ > > Key: FOP-2969 > URL: https://issues.apache.org/jira/browse/FOP-2969 > Project: FOP > Issue Type: Bug > Components: font/opentype, renderer/pdf > Affects Versions: 2.5, 2.4, trunk > Reporter: Volker Kunert > Priority: Major > Attachments: DIN_SPEC_91379_Sequences-aa-hb-view.pdf, > DIN_SPEC_91379_Sequences-ab-hb-view.pdf, > DIN_SPEC_91379_Sequences-ac-hb-view.pdf, > DIN_SPEC_91379_Sequences-hb-view.txt, DefaultScriptProcessor.java, > TestFop.java, fop.xconf, test-din-spec-sequences.fo, > test-din-spec-sequences.fo-patched.pdf, test-din-spec-sequences.fo.pdf > > > E.g. with 0041 030B LATIN CAPITAL LETTER A WITH COMBINING DOUBLE ACUTE ACCENT > the accent E.g. with 0041 030B LATIN CAPITAL LETTER A WITH COMBINING DOUBLE > ACUTE ACCENT the accent appears at the right hand side of the letter A, not > above the letter A. > If e.g. an "X" is prepended, the sequence is rendered correctly. > The tested sequences are used in the following specification: > DIN SPEC 91379: Characters in Unicode for the electronic processing of names > and dataexchange in Europe; with digital attachment > [https://www.xoev.de/downloads-2316#StringLatin] > [https://www.din.de/de/wdc-beuth:din21:301228458] > The output of FOP is provided in test-din-spec-sequences.fo.pdf, which is > created by running TestFop.java that processes test-din-spec-sequences.fo. > Font used for testing: NotoSansMono-Regular.ttf, see > [https://www.google.com/get/noto/] > download: > [https://noto-website-2.storage.googleapis.com/pkgs/NotoSansMono-hinted.zip] > The following dirty patch seems to resolve the problem for my test case: > (delete "{{&& (unscaledWidths[index] != 0").}} > > {code:java} > --- > ./trunk/fop-core/src/main/java/org/apache/fop/complexscripts/scripts/DefaultScriptProcessor.java > 2020-09-03 16:20:03.442089088 +0200 > +++ > /home/volker/software/xmlgraphics-fop-trunk/fop-core/src/main/java/org/apache/fop/complexscripts/scripts/DefaultScriptProcessor.java > 2020-09-03 16:37:40.781775907 +0200 > @@ -151,7 +151,7 @@ > } > protected boolean isReorderedMark(GlyphDefinitionTable gdef, int[] glyphs, > int[] unscaledWidths, int index) { > - return gdef.isGlyphClass(glyphs[index], > GlyphDefinitionTable.GLYPH_CLASS_MARK) && (unscaledWidths[index] != 0); > + return gdef.isGlyphClass(glyphs[index], > GlyphDefinitionTable.GLYPH_CLASS_MARK); > {code} > See also PDFBOX-4951 -- This message was sent by Atlassian Jira (v8.3.4#803005)