2012-05-14 2 views
11

Ich versuche, meine C# -Anwendung zu generieren, um E-Mails zu generieren. Ich hätte das am Freitag in einer Stunde erledigen sollen ... aber Outlook ist ziemlich ungehorsam.HTMLBody weigert sich, die angegebene Schriftgröße auszugeben, endet immer mit einer anderen Größe

Es scheint, dass egal, wie ich die Schriftgröße im HTMLBody des MailItem angeben, es kommt eine leicht andere Größe. Das Schriftbild erscheint immer wie angegeben, aber die Größe ist nie richtig.

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>"; 

erzeugt Schriftgröße 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>"; 

produziert Größe 12 Schriftart.

So scheint es, dass die Angabe von 11px (oder 11pt, versuchte, dass auch) Schriftart über CSS bekommt mich 8,5px, und durch font-Tags bekommt mich 12px.

Ich habe ein wenig weiter damit gespielt, und im Grunde erzeugt das Font-Tag 12pt Schriftart, egal was. Das ist eine Sackgasse, aber ich wusste, dass das Font-Tag sowieso veraltet war. Das CSS-Tag wird mir verschiedene Größen geben, aber selten, wonach ich frage. Es ist immer ausgeschaltet, und nicht durch eine konsistente Menge.

Schriftgröße in code = Schriftgröße in E-Mail:

  • 12 = 9
  • 13 = 10
  • 14 = 10,5
  • 15 = 11,5
  • 16 = 12
  • 17 = 13
  • 18 = 13,5
  • 19 = 14,5
  • 20 = 15

14.5px in CSS angeben gibt mir meine gewünschte 11px ... aber ich fühle mich nicht wohl Bereitstellung von etwas, das auf das hängt.

Was ist das Problem hier? Gibt es etwas, das ich in CSS vernachlässige? Etwas, das ich an anderer Stelle in MailItem oder Outlook.Application anpassen muss?

Antwort

1

Es scheint mir, dass in der E-Mail einige Einstellungen aus, was auch immer Ihre angegebene Schriftart ist zu verkleinern gesetzt. Dies kann aufgrund verschiedener Benutzereinstellungen variieren. Sie geben an, dass es "nicht durch eine einheitliche Menge" ist, aber ich stimme nicht zu. Basierend auf Ihren Zahlen, kommen alle auch Werte aus bei .75 der Betrag, den Sie angeben, während alle ungeraden Werte über .76xxxx sind. So ist es, wie die E-Mail eingestellt ist Ihre angegebene Schriftgröße der äquivalent von .75em um etwa zu multiplizieren.

Ja, Sie könnten kompensieren, indem Sie Ihren Zielwert nehmen und mit ungefähr 1.33 multiplizieren, aber tun Sie das nur für sich selbst? Mit anderen Worten, wie ich ursprünglich angegeben, kann dies eine benutzerspezifische Einstellung sein (standardmäßig seine .75 in Outlook kann, weiß ich nicht), in dem Fall, dass Sie nicht Schriftgrößen für alle Benutzer garantieren können.

Sizing Vielleicht die Schrift in em Einheiten hier arbeiten kann.Wenn Sie eine 1.33em angeben, erhalten Sie möglicherweise die bestmögliche Konsistenz für Ihre Zielgröße und reagieren auch auf Benutzereinstellungen.

in einer Version von Outlook In suche mich, ich sicher nicht eine Einstellung identifizieren könnte speziell Schriftarten skalieren. Standardschriftgrößen können festgelegt werden, und möglicherweise erfolgt die Skalierung basierend auf einer Formel der Standardgröße der angeforderten Größe.

7

Es ist, weil Sie 11px pt statt verwendet. "px" steht für Pixel und 1 Pixelgröße für Text bedeutet nicht 1 Punkt in der Schriftgröße. Verwenden Sie 11pt anstelle von 11px.

Per dieser Diskussion hier: https://graphicdesign.stackexchange.com/questions/199/point-vs-pixel-what-is-the-difference

Ein Pixel ist ein einzelnes Quadrat 'Bildelement' (daher Pixel), das heißt ein einzelner Punkt in Ihrem Bild. Ein 10x10-Bild besteht aus einer Menge von Pixeln in einem 10 mal 10 mal großen Raster, was 100 Pixel ergibt.

Der ‚Punkt‘ (PT) auf der anderen Seite ist eine Längeneinheit, die üblicherweise verwendet, um die Höhe einer Schriftart zu messen, aber technisch in der Lage jede Länge zu messen. In Anwendungen entspricht 1pt genau 1/72stel Zoll; im traditionellen Druck technisch 72pt ist 0.996264 Zoll, obwohl ich denke, dass Sie verzeihen werden, um es zu runden!

Wie viele Pixel = 1 Punkt hängt von der Auflösung des Bildes. Wenn Ihr Bild 72ppi (Pixel pro Zoll) beträgt, entspricht ein Punkt genau einem Pixel.

+0

ich im Absatz unmittelbar nach dem Code, den ich habe auch versucht, ‚pt‘ in allen Orten mit I ‚px‘ verwenden, bekam aber die gleichen Ergebnisse. – friggle

+0

Ich weiß, das wirklich alt ist, und ich wünsche, dass ich dieses zurück hätte gedacht, dann, aber was, wenn, was wir diskutieren, ist nur eine Frage der Größe Unterschied mit der Schrift selbst? Nur um zu sehen, was ich meine, gehen Sie hier: [Type Tester] (http://www.typetester.org). Sie können die Größe Basis-Schriftart auf der rechten Seite ändern 14px zu sein und zwischen Calibri, Arial (kein großer Unterschied) und Times New Roman (großen Unterschied) vergleichen. Vielleicht ist Calibri nicht die Schriftart, die Sie verwenden möchten. – seekerOfKnowledge

1

Ich hatte etwa das gleiche Problem beim Schreiben eines VBA-Makros, die eine Outlook-E-Mail mit Excel-Daten erstellt. Lustig war, dass egal, was ich tat, Verwendung pt oder px, nichts davon zählte: die jemals Wert I verwendet, die Ausgabe übersprungen immer über Schriftgröße 11. Mit 11pt gab mir 8,5 Schriftgröße. 12 pt Mit gab 9. mir 14 12 gab Mit mir ...

Wie auch immer, wenn ich eine Dezimalzahl hinzugefügt plötzlich hat es funktioniert. So versuchen Sie dies: 11.0pt. Ich hoffe es hilft.

-2

Versuchen Sie folgendes: <span style="font-size:11pt">

Ich hoffe, es hilft.

+0

Das OP besagt, dass sowohl 11px als auch 11pt das gleiche Ergebnis hatten. – friggle

Verwandte Themen