예제 #1
0
        public override void PrintBy(Printing.IPrinter printer)
        {
            printer.Space(_offset);
            var amount = _length - _offset;

            printer.PrintJapaneseLetter(_letter, amount);
        }
예제 #2
0
 public override void PrintBy(Printing.IPrinter printer)
 {
     var restoreStart = printer.StorePositionAndFont();
     Array.ForEach(_baseText, x => x.PrintBy(printer));
     printer.Space(_appendingLength);
     PrintRuby(printer, restoreStart);
 }
예제 #3
0
        public override void PrintBy(Printing.IPrinter printer)
        {
            printer.Space(_offset);
            var letter = _text;
            var amount = _length - _offset;

            printer.PrintLatinText(letter, amount);
        }
예제 #4
0
        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();
        }