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">
Надеюсь, это поможет.