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); }
void Printing.IPrintable.PrintBy(Printing.IPrinter printer) { if (_heading != null) { printer.SetOutlineHere(_heading.Level, _heading.Title); } foreach (var t in _texts) { t.PrintBy(printer); } }
private void PrintRuby(Printing.IPrinter printer, Printing.PrinterMemento restoreStart) { var restoreEnd = printer.StorePositionAndFont(); try { restoreStart(); float bodyFontSize = printer.FontSize; float rubyFontSize = bodyFontSize / 2; //TODO: 設定を統一するか、書式情報として運搬 printer.LineFeed(-(bodyFontSize + rubyFontSize) / 2); printer.FontSize = rubyFontSize; Array.ForEach(_rubyText, x => x.PrintBy(printer)); } finally { restoreEnd(); } }
void Printing.IPrintable.PrintBy(Printing.IPrinter printer) { int pageNumber = 0; int lineNumberInPage = 0; foreach (var line in _lineEnum) { if (lineNumberInPage >= _numberOfLines) { printer.PageBreak(); lineNumberInPage = 0; ++pageNumber; Progress(pageNumber); } line.PrintBy(printer); printer.LineFeed(_leading); printer.CarriageReturn(); ++lineNumberInPage; } Progress(pageNumber + 1); }
public override void PrintBy(Printing.IPrinter printer) { }
public abstract void PrintBy(Printing.IPrinter printer);