fri*_*gle 11 css c# outlook font-size office-interop
我正在尝试使用我的C#应用程序生成表单电子邮件.我应该在星期五的一个小时内完成这个......但是Outlook非常不听话.
似乎无论我在MailItem的HTMLBody中指定字体大小的方式,它的大小都略有不同.Font face总是按照指定出现,但大小永远不对.
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>";
Run Code Online (Sandbox Code Playgroud)
生成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>";
Run Code Online (Sandbox Code Playgroud)
产生12号字体.
所以,似乎是通过CSS指定11px(或11pt,也尝试过)字体让我获得8.5px,并且通过字体标签获得12px.
我已经做了一些进一步玩弄这个,基本上,字体标签产生12pt字体,无论如何.所以这是一个死路一条,但我知道字体标签无论如何都被弃用了.CSS标签会给我不同的尺寸,但很少我要求的.它总是关闭,而不是一致的数量.
代码中的font-size =电子邮件中的font-size:
在CSS中指定14.5px给了我想要的11px ......但我觉得部署依赖于它的东西感觉不舒服.
这是什么问题?有什么我忽略了在CSS中指定的东西吗?我需要在MailItem或Outlook.Application中调整其他地方吗?
这是因为你使用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取决于图像的分辨率.如果您的图像是72ppi(每英寸像素数),那么一个点将恰好等于一个像素.
在我看来,电子邮件中的某些设置被设置为缩小您指定的字体的大小。这可能会因不同的用户设置而异。你说它“数量不一致”,但我不同意。根据您的数字,所有偶数值均按.75您指定的金额计算,而所有奇数值约为.76xxxx。因此,就像邮件被设置为将您给定的字体大小乘以大约相当于.75em.
是的,您可以通过将目标值大致乘以 来进行补偿1.33,但您只是为自己这样做吗?换句话说,正如我最初所说,这可能是用户特定的设置(默认情况下可能.75在 Outlook 中,我不知道),在这种情况下,您无法保证所有用户的字体大小。
也许以单位调整字体大小em在这里可能有效。如果您给出1.33em,这可能会让您与目标大小保持最大的一致性,并且还会响应用户设置。
在查看 Outlook 版本时,我无法确定是否有专门缩放字体的设置。可以设置默认字体大小,并且可能根据默认大小到请求大小的某些公式进行缩放。