Форматирование простого текстового электронного письма в C # - PullRequest
0 голосов
/ 20 июля 2010

Я пытаюсь напечатать таблицу внутри электронного письма, используя обычный текст.У меня есть следующий код:

string body = string.Format("{0,-30}{1,-30}{2,-50}{3,-40}",
                                   "Col1", "Col2", "Col2", “Col4”);

body += string.Format("{0,-30}{1,-30}{2,-50}{3,-40}",
                                value1, value2, value3, value4);

Microsoft.Office.Interop.Outlook.ApplicationClass myOutlookApplication = null;
myOutlookApplication = new Microsoft.Office.Interop.Outlook.ApplicationClass();
Microsoft.Office.Interop.Outlook.MailItem myNewMail = 
    (Microsoft.Office.Interop.Outlook.MailItem)myOutlookApplication.CreateItem( 
      Microsoft.Office.Interop.Outlook.OlItemType.olMailItem );            

myNewMail.To = recipient;
myNewMail.Subject = subject;
myNewMail.Body = body;
myNewMail.BodyFormat = OlBodyFormat.olFormatPlain;            

myNewMail.Send();

У меня проблема в том, что текст для тела не выравнивается.Это также, кажется, обернуть текст внутри почты.Может кто-нибудь сказать мне, что я могу делать здесь не так?

Ответы [ 2 ]

2 голосов
/ 20 июля 2010

Создание (или фактически имитация поведения) таблицы в виде обычного текста хорошо работает только тогда, когда:

  1. Значения в ваших таблицах точно такой же ширины, что и ширина столбца. Это то, о чем вы (программист) должны заботиться, заключая текст в пробелы, когда текст слишком короткий, или обрезая текст, если он слишком длинный.

  2. Пользователь, получающий текст, использует моноширинный шрифт (http://en.wikipedia.org/wiki/Monospaced_font) для просмотра таблицы. И это, к сожалению, не под вашим контролем, если вы отправите таблицу в сообщении электронной почты .. .

0 голосов
/ 20 июля 2010

Это из-за шрифтов.Если вы хотите, чтобы он выстраивался в линию, вам нужно использовать шрифт фиксированной ширины, как, надеюсь, ваш редактор кода.

В противном случае вы можете попробовать что-то, используя TAB.Но это может быть сложно.

...