HTMLBody отказывается выводить размер шрифта, который я указываю, всегда заканчивается другим размером

Я пытаюсь заставить свое приложение С# создавать электронные письма формы. Я должен был обернуть это через час в пятницу... но Outlook выглядит довольно непослушным.

Кажется, что независимо от того, как я определяю размер шрифта в HTML-модуле MailItem, он отличается немного другим размером. Лицо шрифта всегда выходит, как указано, но размер никогда не прав.

email.HTMLBody = "<p style='font-size:11px;font-family:Calibri;'>girl look at that body</p>";
email.HTMLBody = "<style> body { font-family:'Calibri'; font-size:11px; } </style> <body>girl look at that body</body>";
email.HTMLBody = "<html><header><style> body { font-family:'Calibri'; font-size:11px; } </style></header> <body>girl look at that body</body></html>";
email.HTMLBody = "<span style='font-size:11px;font-family:calibri;'>girl look at that body</span>";

создает шрифт размера 8.5.

email.HTMLBody = "<html><body><font face='Calibri' size='11px'>girl look at that body</font></body></html>";
email.HTMLBody = "<font face='Calibri' size='11px'>girl look at that body</font>";

создает шрифт размера 12.

Таким образом, похоже, что указание шрифта 11px (или 11pt, попробовало) тоже с помощью CSS получает меня 8.5px, а по тегам шрифтов получается 12px.

Я немного поработал с этим, и в основном тег шрифта создает шрифт 12pt независимо от того, что. Так что тупик, но я знал, что тег шрифта был устаревшим. Тег CSS даст мне разные размеры, но редко то, о чем я прошу. Он всегда отключается, а не на постоянной основе.

размер шрифта в code = font-size в письме:

  • 12 = 9
  • 13 = 10
  • 14 = 10.5
  • 15 = 11.5
  • 16 = 12
  • 17 = 13
  • 18 = 13,5
  • 19 = 14.5
  • 20 = 15

Задание 14.5px в CSS дает мне мой желаемый 11px... но я не чувствую себя комфортно, развертывая что-то, что зависит от этого.

Какая проблема здесь? Есть ли что-то, что я не могу указать в CSS? Что-то мне нужно настроить в другом месте в MailItem или Outlook.Application?

Ответ 1

Это потому, что вы использовали 11px вместо pt. "px" обозначает пиксели, а размер 1 пикселя текста не означает 1 пункт в размере шрифта. Используйте 11pt вместо 11px.

В этом обсуждении: https://graphicdesign.stackexchange.com/questions/199/point-vs-pixel-what-is-the-difference

Пиксель представляет собой единый квадратный элемент изображения (следовательно, pix-el), то есть одну точку в изображении. Изображение 10x10 составлено из набора наборов пикселей в сетке 10 шириной 10 глубиной, всего 100 пикселей.

С другой стороны, "точка" (pt) представляет собой единицу длины, обычно используемую для измерения высоты шрифта, но технически способную измерять любую длину. В приложениях 1pt равно ровно 1/72 дюйма дюйма; в традиционной печати технически 72pt составляет 0,996264 дюйма, хотя я думаю, вы будете прощены за округление!

Сколько пикселей = 1pt зависит от разрешения вашего изображения. Если ваше изображение составляет 72 пикселя (пикселей на дюйм), то одна точка будет равна ровно одному пикселю.

Ответ 2

Мне кажется, что некоторые настройки в электронном письме устанавливаются в соответствии с уменьшением размера вашего шрифта. Это может зависеть от разных пользовательских настроек. Вы заявляете, что это "не по согласованной сумме", но я не согласен. Исходя из ваших номеров, все четные значения выходят на .75 сумму, которую вы укажете, а все нечетные значения примерно .76xxxx. Таким образом, это похоже на то, что почта настроена на умножение вашего заданного размера шрифта примерно на эквивалент .75em.

Да, вы могли бы компенсировать, взяв целевое значение и умножив его примерно на 1.33, но вы делаете это только для себя? Другими словами, как я изначально заявил, это может быть настраиваемый пользователем параметр (который по умолчанию может быть .75 в Outlook, я не знаю), и в этом случае вы не можете гарантировать размер шрифта для всех пользователей.

Возможно, здесь может работать размер шрифта в em. Если вы дадите 1.33em, это может обеспечить максимальную согласованность вашего целевого размера, а также отвечает на пользовательские настройки.

При взгляде на версию Outlook я не смог точно определить настройку для специально масштабирования шрифтов. Размер шрифта по умолчанию может быть установлен, и, возможно, масштабирование происходит на основе некоторой формулы размера по умолчанию для запрошенного размера.

Ответ 3

У меня была такая же проблема при написании макроса VBA, который сделал электронную почту Outlook с данными Excel. Смешная часть заключалась в том, что независимо от того, что я делал, используйте pt или px, ничто из этого не имело значения: значение когда-либо значащее, которое я использовал, вывод всегда пропускал размер шрифта 11. Использование 11pt дало мне размер шрифта 8.5. Используя 12pt дал мне 9. Используя 14 дал мне 12...

Во всяком случае, когда я добавил десятичную, он неожиданно сработал. Итак, попробуйте следующее: 11.0pt. Надеюсь, что это поможет.

Ответ 4

Попробуйте следующее: <span style="font-size:11pt">

Надеюсь, это поможет.