if (hasTextDeco) {
state.updateStroke((fs.getDescender() / (-8 * 1000f)),
Constants.EN_SOLID);
float endIPD = startIPD + inline.getIPD();
if (inline.hasUnderline()) {
ColorType ct = (ColorType) inline
.getTrait(Trait.UNDERLINE_COLOR);
state.updateColor(ct, false, null);
float y = baseline - fs.getDescender() / 2;
line.setLine(startIPD / 1000f, y / 1000f, endIPD / 1000f,
y / 1000f);
state.getGraph().draw(line);
}
if (inline.hasOverline()) {
ColorType ct = (ColorType) inline
.getTrait(Trait.OVERLINE_COLOR);
state.updateColor(ct, false, null);
float y = (float) (baseline - (1.1 * fs.getCapHeight()));
line.setLine(startIPD / 1000f, y / 1000f, endIPD / 1000f,
y / 1000f);
state.getGraph().draw(line);
}
if (inline.hasLineThrough()) {
ColorType ct = (ColorType) inline
.getTrait(Trait.LINETHROUGH_COLOR);
state.updateColor(ct, false, null);
float y = (float) (baseline - (0.45 * fs.getCapHeight()));
line.setLine(startIPD / 1000f, y / 1000f, endIPD / 1000f,
y / 1000f);