Использование DocumentFormat.OpenXml в C# .NET для выделения всего DOCX курсивомC#

Место общения программистов C#
Ответить
Anonymous
 Использование DocumentFormat.OpenXml в C# .NET для выделения всего DOCX курсивом

Сообщение Anonymous »

Используя C#/.NET и пакет Nuget DocumentFormat.OpenXml от Microsoft, я пытаюсь изменить файлы DOCX так, чтобы весь документ был отформатирован курсивом. Однако приведенный ниже подход иногда работает, а иногда возвращает сообщение «Невозможно вставить OpenXmlElement «newChild», поскольку он является частью дерева». Во всех случаях выходной документ намного больше, чем если бы я вносил изменения в Word (ctrl+a, ctrl+i, ctrl+s).
Какой подход вы бы порекомендовали вместо этого:

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

 // Step 2: Modify the .docx file
try
{
File.Copy(inputFilePath, tempOutputFilePath, overwrite: true); // Create a copy for modification

using (WordprocessingDocument document = WordprocessingDocument.Open(tempOutputFilePath, true))
{
var body = document.MainDocumentPart.Document.Body;

// Iterate through all paragraphs and modify text formatting
foreach (var paragraph in body.Elements
())
{
foreach (var run in paragraph.Elements())
{
RunProperties runProperties = run.GetFirstChild() ?? new RunProperties();

// Set font to Times New Roman and italicize the text
runProperties.RunFonts = new RunFonts { Ascii = "Times New Roman", HighAnsi = "Times New Roman" };
runProperties.Italic = new Italic();

run.PrependChild(runProperties); // Add or update properties
}
}

document.MainDocumentPart.Document.Save(); // Save changes
}
Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/793 ... ocx-italic
Ответить

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

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

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

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

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