Используя C#/.NET и пакет Nuget DocumentFormat.OpenXml от Microsoft, я пытаюсь изменить файлы DOCX так, чтобы весь документ был отформатирован курсивом. Однако выходной документ будет намного больше, чем если бы я внес изменения в Word (ctrl+a, ctrl+i, ctrl+s).
Какой подход вы бы порекомендовали вместо этого? это:
private void ModifyDocument(string filePath) {
using (WordprocessingDocument document = WordprocessingDocument.Open(filePath, 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())
{
// Retrieve existing RunProperties or create a new one
var runProperties = run.GetFirstChild();
if (runProperties == null)
{
runProperties = new RunProperties();
run.PrependChild(runProperties);
}
// Modify 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();
}
}
document.MainDocumentPart.Document.Save(); // Save changes
}
Используя C#/.NET и пакет Nuget DocumentFormat.OpenXml от Microsoft, я пытаюсь изменить файлы DOCX так, чтобы весь документ был отформатирован курсивом. Однако выходной документ будет намного больше, чем если бы я внес изменения в Word (ctrl+a, ctrl+i, ctrl+s). Какой подход вы бы порекомендовали вместо этого? это: [code]private void ModifyDocument(string filePath) { using (WordprocessingDocument document = WordprocessingDocument.Open(filePath, 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()) { // Retrieve existing RunProperties or create a new one var runProperties = run.GetFirstChild(); if (runProperties == null) { runProperties = new RunProperties(); run.PrependChild(runProperties); }
// Modify 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(); } }
document.MainDocumentPart.Document.Save(); // Save changes } [/code]
Используя C#/.NET и пакет Nuget DocumentFormat.OpenXml от Microsoft, я пытаюсь изменить файлы DOCX так, чтобы весь документ был отформатирован курсивом. Однако приведенный ниже подход иногда работает, а иногда возвращает сообщение «Невозможно...
Используя C#/.NET и пакет DocumentFormat.OpenXml Nuget от Microsoft, я пытаюсь изменить файлы DOCX так, чтобы весь документ был отформатирован курсивом.
Однако выходной документ намного больше, чем если бы я вносил изменения в Word
По какой-то причине OpenXML не сохраняет специальные символы в файл, когда document.MainDocumentPart.Document.Save(); называется, ЕСЛИ я использую странные символы utf-8, такие как ʧ.
Отладка кода, внутреннего текста и внутреннего xml, и все кажется...
По какой-то причине OpenXML не сохраняет специальные символы в файл, когда document.MainDocumentPart.Document.Save(); называется, ЕСЛИ я использую странные символы utf-8, такие как ʧ.
Отладка кода, внутреннего текста и внутреннего xml, и все кажется...
Нам нужно преобразовать документ Word в HTML. Используя OpenXMLPowerTools, код работал в .NET Framework 4.6. Но после перехода на .NET6 мы получаем вышеуказанное исключение для HTMLConveterSettings при преобразовании изображений из документа....