В настоящее время я пытаюсь создать и сохранить подпись Outlook.
Проблема в том, что она всегда сохраняется в кодировке по умолчанию.
Попытка изменить это в нескольких местах на UTF-8 (!) Программно, похоже, не работает.
Я предполагаю, что правильным местом будет только изменение WebOptions
, поскольку другие кодировки уже установлены в UTF-8 после проверки предыдущего значения.
Есть ли способ изменить кодировку и позволить Outlook сохранить ее таким образом?
Это пример, демонстрирующий проблему:
using Microsoft.Office.Interop.Word;
using System.Runtime.InteropServices;
namespace CreateSignature
{
class TestCreation
{
static void Main(string[] args)
{
Create();
}
public static void Create()
{
const string _LineBreak = "\v";
string signature = string.Empty;
Application word = new Application();
var document = word.Documents.Add();
var selection = word.Selection;
word.Options.DefaultTextEncoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
document.WebOptions.Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
selection.Font.Bold = 0;
selection.Font.Name = "Verdana";
selection.Font.Size = 9;
selection.Font.Color = WdColor.wdColorBlack;
selection.TypeText("Best regards");
selection.TypeText(_LineBreak);
selection.TypeText("Special text ### üäöß····· ###");
selection.TypeText(_LineBreak);
document.SaveEncoding = Microsoft.Office.Core.MsoEncoding.msoEncodingUTF8;
document.Saved = true;
var signatureName = "Test.Signature";
var emailOptions = word.EmailOptions.EmailSignature;
emailOptions.EmailSignatureEntries.Add(signatureName, document.Range());
//emailOptions.NewMessageSignature = signatureName;
//emailOptions.ReplyMessageSignature = signatureName;
word.Quit(WdSaveOptions.wdSaveChanges);
Marshal.ReleaseComObject(word);
}
}
}
The *Файл 1013 * будет содержать
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
, где он должен быть utf-8
вместо windows-1252
.
Кажется, что этот вопрос кажется знакомымэто не загруженный документ, и предлагаемое изменение в любом случае не работает (Fields.Count == 0
).