Невозможно применить стили по умолчанию с помощью OpenXMLC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно применить стили по умолчанию с помощью OpenXML

Сообщение Anonymous »

Мне нужно применить стили по умолчанию к документу docx, я получаю стили из файла odt

Код: Выделить всё

private void InsertDefaultStyles(DefaultStyle defaultStyle, WordprocessingDocument docxDocument)
{
var styleDefinitionsPart = docxDocument.MainDocumentPart.StyleDefinitionsPart;
Styles styles = styleDefinitionsPart.Styles;
if (defaultStyle.Attributes["style:family"] == "paragraph")
{
RunPropertiesBaseStyle rPrBaseStyle = new RunPropertiesBaseStyle();
RunProperties rPr = new RunProperties();

foreach(var child in defaultStyle.Children)
{
if(child is StyleTextProperties)
rPr.Append(GetFonts(child));
}
rPrBaseStyle.Append(rPr);
styles.Append(rPrBaseStyle);
}
}
private RunFonts GetFonts(OpenDocumentObject runPropertiesAttr)
{
RunFonts runFonts = new RunFonts();
foreach(KeyValuePair font in runPropertiesAttr.Attributes)
{
switch (font.Key)
{
case "style:font-name":
runFonts.Ascii = font.Value;
runFonts.HighAnsi = font.Value;

runFonts.AsciiTheme = null;
runFonts.HighAnsiTheme = null;
break;
case "style:font-name-asian":
runFonts.EastAsia = font.Value;
runFonts.EastAsiaTheme = null;
break;
case "style:font-name-complex":
runFonts.ComplexScript = font.Value;
runFonts.ComplexScriptTheme = null;
break;
}
}
return runFonts;
}
Стили получены корректно и назначены, но в выходном xml-документе в стилях получается следующая строка Скорее всего проблема в назначении созданных стилей, но не могу понять где именно и что я делаю не так

Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-openxml
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»