Я читаю файл шаблона Word, который обрабатываю в своем коде. < /p>
Я хочу установить фоновое изображение указанного документа. Вот как я это делаю
`< /p>
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
mainPart.Document = new Document();
Body body = new Body();
mainPart.Document.Append(body);
SectionProperties sectionProperties = new SectionProperties(
new PageSize()
{
Width = (UInt32Value)16838U,
Height = (UInt32Value)11906U,
Orient = PageOrientationValues.Landscape
},
new PageMargin()
{
Top = 1440,
Right = 1440,
Bottom = 1440,
Left = 1440,
Header = 720,
Footer = 720,
Gutter = 0
}
);
body.AppendChild(sectionProperties);
var MainPageImgUrl = tocsInfo.FirstOrDefault(x => x.id == 7)?.images["background1"];
if (!string.IsNullOrEmpty(MainPageImgUrl))
{
byte[] imageBytes = await DownloadBackgroundImage(MainPageImgUrl);
// Görseli ImagePart'e ekle
ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Png);
using (MemoryStream stream = new MemoryStream(imageBytes))
{
imagePart.FeedData(stream);
BinaryWriter bw = new BinaryWriter(stream);
bw.Write(imageBytes);
bw.Close();
}
string imageId = mainPart.GetIdOfPart(imagePart);
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,
};
bg.AddNamespaceDeclaration("v", "urn:schemas-microsoft-com:vml");
V.Fill fill = new V.Fill()
{
RelationshipId = imageId, // Doğru ID kullanımı
Title = "background",
Recolor = false,
Type = V.FillTypeValues.Frame,
Aspect = V.ImageAspectValues.Ignore,
};
var settingsPart = mainPart.DocumentSettingsPart;
if (settingsPart == null)
{
settingsPart = mainPart.AddNewPart();
settingsPart.Settings = new Settings();
}
settingsPart.Settings.Append(new DisplayBackgroundShape());
settingsPart.Settings.Save();
bg.Append(fill);
docBg.Append(bg);
mainPart.Document.InsertAt(docBg, 0);
}
body.Append(new Paragraph(new Run(new Break() { Type = BreakValues.Page })));
mainPart.Document.Save();
}
< /code>
Когда я делаю это так, изображение появляется, но я не могу установить изображение на странице из -за «Displaybackgroundshape ()», оно переполняется. Если я определяю другое свойство, а не type = v.filltypevalues.frame, на экране не появляется изображение. /п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... th-openxml
Добавьте фоновое изображение в Word с OpenXML ⇐ C#
Место общения программистов C#
-
Anonymous
1739972648
Anonymous
Я читаю файл шаблона Word, который обрабатываю в своем коде. < /p>
Я хочу установить фоновое изображение указанного документа. Вот как я это делаю
`< /p>
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
mainPart.Document = new Document();
Body body = new Body();
mainPart.Document.Append(body);
SectionProperties sectionProperties = new SectionProperties(
new PageSize()
{
Width = (UInt32Value)16838U,
Height = (UInt32Value)11906U,
Orient = PageOrientationValues.Landscape
},
new PageMargin()
{
Top = 1440,
Right = 1440,
Bottom = 1440,
Left = 1440,
Header = 720,
Footer = 720,
Gutter = 0
}
);
body.AppendChild(sectionProperties);
var MainPageImgUrl = tocsInfo.FirstOrDefault(x => x.id == 7)?.images["background1"];
if (!string.IsNullOrEmpty(MainPageImgUrl))
{
byte[] imageBytes = await DownloadBackgroundImage(MainPageImgUrl);
// Görseli ImagePart'e ekle
ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Png);
using (MemoryStream stream = new MemoryStream(imageBytes))
{
imagePart.FeedData(stream);
BinaryWriter bw = new BinaryWriter(stream);
bw.Write(imageBytes);
bw.Close();
}
string imageId = mainPart.GetIdOfPart(imagePart);
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,
};
bg.AddNamespaceDeclaration("v", "urn:schemas-microsoft-com:vml");
V.Fill fill = new V.Fill()
{
RelationshipId = imageId, // Doğru ID kullanımı
Title = "background",
Recolor = false,
Type = V.FillTypeValues.Frame,
Aspect = V.ImageAspectValues.Ignore,
};
var settingsPart = mainPart.DocumentSettingsPart;
if (settingsPart == null)
{
settingsPart = mainPart.AddNewPart();
settingsPart.Settings = new Settings();
}
settingsPart.Settings.Append(new DisplayBackgroundShape());
settingsPart.Settings.Save();
bg.Append(fill);
docBg.Append(bg);
mainPart.Document.InsertAt(docBg, 0);
}
body.Append(new Paragraph(new Run(new Break() { Type = BreakValues.Page })));
mainPart.Document.Save();
}
< /code>
Когда я делаю это так, изображение появляется, но я не могу установить изображение на странице из -за «Displaybackgroundshape ()», оно переполняется. Если я определяю другое свойство, а не type = v.filltypevalues.frame, на экране не появляется изображение. /п>
Подробнее здесь: [url]https://stackoverflow.com/questions/79451553/add-background-image-in-word-with-openxml[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия