Печать базовой линии PrintDocument и межстрочный интервал

У меня есть приложение, которое печатает очень маленькие этикетки.

Я заметил одну вещь: при печати (с использованием DrawString с прямоугольником) текст выравнивается по ВЕРХНЕМУ размера восходящего элемента шрифта. Итак, когда в строке 2 размера шрифта, вы получите это. Проблема с выравниванием по верхнему краю

Объект PrintDocument, по-видимому, не имеет возможности выполнять межстрочный интервал или вертикальное выравнивание.

Другими словами, я полагаю, что мне нужно все это рассчитать самому.

Мой главный вопрос:

Есть ли другой объект, который я должен использовать, где я могу выровнять текст по базовой линии и «сузить» вертикальный интервал, чтобы мой контент не выходил за пределы меток? Вы знаете, как Word и LibreOffice?

Настройки абзаца Libre Office

Или мне нужно перепроектировать все это в моем коде.


person Some_Yahoo    schedule 30.08.2019    source источник
comment
На самом деле это не аспект PrintDocument, поскольку это просто держатель документа, он больше связан с DrawString , который имеет несколько вариантов макета и форматирования за пределами прямоугольника макета. Вы должны опубликовать свой код, чтобы мы могли увидеть, с чего начать.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 30.08.2019
comment
Примечания здесь: Правильно нарисуйте текст с помощью Graphics Path и здесь: Я хочу удалить отступы сверху и снизу (...) может помочь.   -  person Jimi    schedule 30.08.2019
comment
Вам нужно будет рассчитать смещение базовой линии. Есть сообщения, которые описывают, как это сделать ..   -  person TaW    schedule 30.08.2019
comment
Спасибо за быстрые ответы. Есть какие-нибудь мнения об использовании объектов FixedDocument и FlowDocument?   -  person Some_Yahoo    schedule 31.08.2019