package simple.escp.fill.function; import simple.escp.dom.Line; import simple.escp.dom.Page; import simple.escp.dom.Report; import simple.escp.util.EscpUtil; import java.util.regex.Matcher; /** * A built-in function that will generate ESC/P to toggle double-strike font style. If current font style is in * default font style, <code>%{DOUBLE}</code> will generate ESC/P to switch to double-strike printing. * If current font style is already in double strike printing (as a result of previous invocation), * <code>%{DOUBLE}</code> will switch to default font style. */ public class DoubleStrikeFunction extends Function { private boolean doubleStrike; /** * Create new instance of this function. */ public DoubleStrikeFunction() { super("%\\{\\s*(DOUBLE)\\s*\\}"); doubleStrike = false; } @Override public String process(Matcher matcher, Report report, Page page, Line line) { String result = doubleStrike ? EscpUtil.escCancelDoubleStrikeFont() : EscpUtil.escSelectDoubleStrikeFont(); doubleStrike = !doubleStrike; return result; } @Override public void reset() { doubleStrike = false; } }