المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : non english character problem !!!



C# Programming
06-09-2009, 10:55 AM
(i hope i write true place)

Hi all, i use the two method shown below, to sent text as html to a word document, but non english characters arent shown in the document. what can i do??

private void button2_Click(object sender, EventArgs e)
{
WordApp = new Word.ApplicationClass();

fileName = @"........";
Microsoft.Office.Interop.Word.Document aDoc = WordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref Format, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
WordApp.Visible = true;
bookmarkPaste(aDoc, bookmarkinWordDoc,myHtmlScript);
}


public void bookmarkPaste(Word.Document aDoc, string bookmarkAdi, string data)
{
try
{
object bookmark = bookmarkAdi;
object missing = System.Reflection.Missing.Value;
object pasteType = Word.WdPasteDataType.wdPasteHTML;
DataObject clipDO = new DataObject();

if (aDoc.Bookmarks.Exists(bookmark.ToString()))
{
Word.Range rangeTbl = aDoc.Bookmarks.get_Item(ref bookmark).Range;

clipDO.SetData(DataFormats.Html,HtmlClipboardData(data));

Clipboard.SetDataObject(clipDO, true);

rangeTbl.PasteSpecial(ref missing, ref missing, ref missing, ref missing, ref pasteType, ref missing, ref missing);
}
else
{

}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}



private static string HtmlClipboardData(string html)
{
StringBuilder sb = new StringBuilder();
Encoding encoding = Encoding.UTF8;
string Header = @"
Version: 1.0
StartHTML: {0:000000}
EndHTML: {1:000000}
StartFragment: {2:000000}
EndFragment: {3:000000}
";
string HtmlPrefix = @"
DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN""&;
html;
head;
meta http-*****=Content-Type content=""text/html; charset={0}"";
/head;
body>

";
HtmlPrefix = string.Format(HtmlPrefix, encoding.WebName);

string HtmlSuffix = @"
!--EndFragment--;
/body;
/html;
";

// Get lengths of chunks
int HeaderLength = encoding.GetByteCount(Header);
HeaderLength -= 16; // extra formatting characters {0:000000}
int PrefixLength = encoding.GetByteCount(HtmlPrefix);
int HtmlLength = encoding.GetByteCount(html);
int SuffixLength = encoding.GetByteCount(HtmlSuffix);

// Determine ********s of chunks
int StartHtml = HeaderLength;
int StartFragment = StartHtml + PrefixLength;
int EndFragment = StartFragment + HtmlLength;
int EndHtml = EndFragment + SuffixLength;

// Build the data
sb.AppendFormat(Header, StartHtml, EndHtml, StartFragment, EndFragment);
sb.Append(HtmlPrefix);
sb.Append(html);
sb.Append(HtmlSuffix);

//Console.WriteLine(sb.ToString());
return sb.ToString();
}

thanks for everything i have...