[ https://issues.apache.org/jira/browse/FOP-2810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Bowditch reassigned FOP-2810: ----------------------------------- Assignee: Chris Bowditch > Incomplete implementation of the simulate-style flag > ---------------------------------------------------- > > Key: FOP-2810 > URL: https://issues.apache.org/jira/browse/FOP-2810 > Project: FOP > Issue Type: Bug > Components: font/unqualified > Affects Versions: 2.3 > Reporter: Dan Caprioara > Assignee: Chris Bowditch > Priority: Major > Original Estimate: 1h > Remaining Estimate: 1h > > The CustomFont.getSimulateStyle() is used only in: > {code:java} > org.apache.fop.render.pdf.PDFPainter.drawTextWithDX(int, int, String, > FontTriplet, int, int, int[]) > {code} > But not in: > {code:java} > org.apache.fop.render.pdf.PDFPainter.drawTextWithDP(int, int, String, > FontTriplet, int, int, int[][]) > {code} > As a result some of the font styling is not applied. > Modifying the above method with the following patch seem to fix the problem: > {code:java} > ... > boolean simulateStyle = tf instanceof CustomFont && ((CustomFont) > tf).getSimulateStyle(); > > // PATCH START > // Taken from #drawTextWithDX method > double shear = 0; > > if (simulateStyle) { > //Adding this breaks the PDF: generator.add("q\n") > if (triplet.getWeight() == 700) { > generator.add("2 Tr 0.31543 w\n"); > } > if (triplet.getStyle().equals("italic")) { > shear = 0.333; > } > } > // PATCH END > tu.writeTextMatrix(new AffineTransform(1, 0, shear, -1, x / > 1000f, y / 1000f)); > tu.updateTf(fk, fsPoints, true); > generator.updateCharacterSpacing(letterSpacing / 1000f); > ... > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)