Настройка фонового изображения в документе Word - PullRequest
0 голосов
/ 16 марта 2020

Я читаю файл шаблона Word, который я обрабатываю в своем коде.

Я хочу установить фоновое изображение указанного документа. Вот как я это делаю

ImagePart ip = mainPart.AddImagePart(ImagePartType.Jpeg, "ImageBackground");
Stream streamImage = ip.GetStream();

BinaryWriter bw = new BinaryWriter(streamImage);
bw.Write(imageArray);
bw.Close();

DocumentBackground docBg = new DocumentBackground() { Color = "FFFFFF" };
V.Background bg = new V.Background()
{
    Id = "_x0000_s1025",
    BlackWhiteMode = V.Office.BlackAndWhiteModeValues.White,
    TargetScreenSize = V.Office.ScreenSizeValues.Sz1024x768
};

V.Fill fill = new V.Fill()
{
    RelationshipId = "ImageBackground",
    Title = "background",
    Recolor = true,
    Type = V.FillTypeValues.Frame
};

bg.Append(fill);
docBg.Append(bg);

mainPart.Document.InsertAt(docBg, 0);

Сгенерированный XML идеально соответствует тому, что создано Word, когда вы устанавливаете фон вручную.

Тем не менее, когда я открываю сгенерированный файл, фон не работает.

Кроме того, одна странная вещь заключается в том, что когда я использую Word для экспорта документа как HTML (как только редактор переключается на содержимое HTML), рендер обновляется в Word и фон работают, но при повторном открытии файла, больше не в режиме HTML, он снова исчезает.

1 Ответ

1 голос
/ 19 марта 2020

Вам необходимо добавить <w:displayBackgroundShape/> к части «settings. xml».
Итак, попробуйте использовать следующее:

var settings = mainPart.DocumentSettingsPart.Settings;
settings.DisplayBackgroundShape = new DisplayBackgroundShape();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...