Пример #1
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();
        }
Пример #2
0
        public override void PrintBy(Printing.IPrinter printer)
        {
            printer.Space(_offset);
            var amount = _length - _offset;

            printer.PrintJapaneseLetter(_letter, amount);
        }
Пример #3
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);
        }
Пример #4
0
        public override void PrintBy(Printing.IPrinter printer)
        {
            printer.Space(_offset);
            var letter = _text;
            var amount = _length - _offset;

            printer.PrintLatinText(letter, amount);
        }