2013-04-23 130 views
0

我試圖發送電子郵件,其中內容是數據庫中的rtf文檔(列BLOB)。C#是否有可能將包含.rtf文件的字節轉換爲包含pdf的字節

所以,我從我的數據庫中獲取我的文檔的字節類型,但是我不知道如何將rtf內容轉換爲電子郵件的可讀文本。

byte[] text = itm.Doc; 

body= "<html><body>"; 

using (var file = new MemoryStream(text)) 
using (var reader = new StreamReader(file)) 
{ 
    reader.BaseStream.Seek(0, SeekOrigin.Begin); 
    while (!reader.EndOfStream) 
    { 
     body+= reader.ReadLine(); 
    } 
} 

但這當然,給我一個RTF文本,如「字節[]文本」的實際內容。

我可以將包含rtf的字節轉換爲包含pdf的字節嗎?

謝謝。

+0

什麼'StreamReader.ReadToEnd()'下面? – Vladimir 2013-04-23 14:26:08

+0

這是一樣的結果。 – 2013-04-23 14:30:30

+0

還有一個建議:嘗試'string [] lines = rtBox.Lines'。 – Vladimir 2013-04-23 14:33:42

回答

1

下面是RTF轉換爲純文本指南:
http://msdn.microsoft.com/en-us/library/vstudio/cc488002.aspx

更新:
嘗試StreamReader.ReadToEnd()這樣的:

using (var reader = new StreamReader(file)) 
{ 
    reader.BaseStream.Seek(0, SeekOrigin.Begin); 
    body += reader.ReadToEnd(); 
} 

rtBox.Rtf = body; 
string[] lines = rtBox.Lines; 

mail.Body = "<html><body>" + string.Join("<br/>", lines) + "</body></html>"; 
+0

在這裏,你有一個本地文件。我有一個rtf文件,在數據庫中存儲爲blob,並在我的代碼中存儲爲byte []。這是不同的,或者我完全失明。 – 2013-04-23 13:52:11

+0

'string rtfText = System.IO.File.ReadAllText(path)'from sample與你的'body + = reader.ReadLine()'類似,如果我沒有弄錯的話。 – Vladimir 2013-04-23 13:54:25

+0

確實,但文字沒有lineBreak,它只是沒有空格的全文...編輯第一篇文章。 – 2013-04-23 14:05:43

相關問題