Я пытаюсь создать надстройку Outlook, которая будет брать содержимое открытого в данный момент электронного письма и сохранять его как текстовый документ. Перед сохранением необходимо отрегулировать размеры изображений, таблиц и т. Д., Чтобы они соответствовали ширине страницы.

Я борюсь с частью изменения размера.

После получения содержимого электронного письма в виде объекта текстового документа ...

var ispector = e.Control.Context as Inspector;
var mailItem = ispector.CurrentItem as MailItem;
var document = ispector.WordEditor as Microsoft.Office.Interop.Word.Document;

... и получение доступной ширины

float availableWidth = document.PageSetup.PageWidth - document.PageSetup.LeftMargin - document.PageSetup.RightMargin;

... Я перебираю фигуры, встроенные фигуры и таблицы, чтобы отрегулировать ширину.

foreach (InlineShape item in document.InlineShapes)
{
   if (item.Width > availableWidth)
      item.Width = availableWidth;
}

foreach (Microsoft.Office.Interop.Word.Table table in document.Tables)
{
   table.AllowAutoFit = true;
   table.AutoFitBehavior(Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitContent);
}

Но что бы я ни делал, размеры изображений в сохраненном документе не меняются.

Я даже попытался вызвать метод Delete для каждой формы / inlineshape, но в сохраненном документе все равно ничего не изменилось.

Любые идеи ?

1
Zmajcek 29 Окт 2019 в 11:22

1 ответ

Лучший ответ

Сначала сохраните электронное письмо как документ Word. Откройте это и примените форматирование к изображениям.

1
Cindy Meister 5 Ноя 2019 в 14:16