2010-07-20 4 views
0

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

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(); 

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

ответ

1

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

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

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

0

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

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

+0

Итак, как мне изменить шрифт? –

Смежные вопросы