public override void PrintBy(Printing.IPrinter printer) { Printing.PrinterMemento restoreStart = null; bool canAddEmphasisDots = CanAddEmphasisDots(); if (canAddEmphasisDots) { restoreStart = printer.StorePositionAndFont(); } _decoratee.PrintBy(printer); if (!canAddEmphasisDots) { return; } var restoreEnd = printer.StorePositionAndFont(); { restoreStart(); var baseFontSize = printer.FontSize; printer.LineFeed(-baseFontSize / 2 - correction); printer.Space(_decoratee.Offset); printer.PrintJapaneseLetter(sesami, baseFontSize); } restoreEnd(); }
public override void PrintBy(Printing.IPrinter printer) { printer.Space(_offset); var amount = _length - _offset; printer.PrintJapaneseLetter(_letter, amount); }
public override void PrintBy(Printing.IPrinter printer) { var restoreStart = printer.StorePositionAndFont(); Array.ForEach(_baseText, x => x.PrintBy(printer)); printer.Space(_appendingLength); PrintRuby(printer, restoreStart); }
public override void PrintBy(Printing.IPrinter printer) { printer.Space(_offset); var letter = _text; var amount = _length - _offset; printer.PrintLatinText(letter, amount); }