Почему graphics.measurestring () возвращает число выше, чем ожидалось?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему graphics.measurestring () возвращает число выше, чем ожидалось?

Сообщение Anonymous »

Я генерирую квитанцию ​​и использую графический объект, чтобы вызвать метод шнурки для распечатки необходимого текста. < /p>

graphics.DrawString(string, font, brush, widthOfPage / 2F, yPoint, stringformat);
< /code>

Это прекрасно работает для того, что мне нужно было сделать. Я всегда знал, что я печатаю, чтобы вручную обрезать любые струны, чтобы она была должным образом поместиться на 80 -миллиметровой квитанционной бумаге. Затем мне пришлось добавить дополнительную функциональность, которая сделает это более гибким. Пользователь мог бы пройти в строки, которые будут добавлены внизу. Чтобы узнать количество символов, я делал что -то вроде этого: < /p>

float width = document.DefaultPageSettings.PrintableArea.Width;
int max = (int)(width / graphics.MeasureString("a", font).Width);
< /code>

Теперь ширина возвращает мне 283, что в MM составляет около 72, что имеет смысл, когда вы учитываете маржу на бумаге 80 мм. Таким образом, вместо того, чтобы обойти то, что я ожидал, будет 36 - 40, я получаю 26, в результате чего 2 строки текста превращаются в 3-4.

Единицы для PrintableArea.width - 1/100 -й дюйма, а PageUnit для графического объекта - это (что, как правило, 1/100 -го дюйма для пинтеров). Так почему я вернулся только 26?

Подробнее здесь: https://stackoverflow.com/questions/120 ... ted-number
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»