Найпоширенішими та широко використовуваними форматами файлів для обробки текстів є DOC, DOCX і ODT. Відомі Microsoft Word і OpenOffice Writer підтримують ці формати, і ми зазвичай використовуємо ці формати для написання документів. Тому нам, як розробникам, необхідно програмно редагувати документи Word у наших програмах. У цій статті ми обговоримо, як редагувати документи Word на C# за допомогою .NET API для редагування документів.

У цій статті коротко обговорюються такі теми:

.NET API для редагування та автоматизації документів Word

У цій статті я буду використовувати GroupDocs.Editor for .NET у прикладах C#, який є API для редагування документів і дозволяє розробникам завантажувати, редагувати та зберігати різні формати документів за допомогою редакторів WYSIWYG HTML. Окрім форматів текстових документів, API підтримує редагування електронних таблиць, презентацій, форматів HTML, XML, TXT, DSV, TSV і CSV.

Завантажте інсталятор DLL або MSI із розділу завантажень або інсталюйте API у своїй програмі .NET за допомогою NuGet.

PM> Install-Package GroupDocs.Editor

Редагування документів Word на C#

Відразу після налаштування API ви можете швидко перейти до редагування документа Word. Наступні кроки дозволять вам редагувати текстовий документ.

  • Завантажте документ Word.
  • Відредагуйте відповідно з параметрами.
  • Збережіть відредагований документ.

Завантажте документ Word

По-перше, завантажте документ, вказавши шлях до документа та пароль, якщо документ захищений.

using (FileStream fs = File.OpenRead(inputFilePath))
{
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
}

Відредагуйте документ Word

Після завантаження ви можете редагувати завантажений документ відповідно до ваших вимог. Тут я замінюю всі входження слова “документ” на “відредагований документ” у документі Word, використовуючи наведений нижче код C#.

    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;
        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;
            string editedContent = originalContent.Replace("document", "edited document");
        }
    }

Збережіть відредагований документ Word із параметрами

Нарешті, під час збереження відредагованого вмісту документа ви можете налаштувати різні параметри. Ці варіанти включають: розбивка на сторінки, встановлення пароля, локаль, параметри захисту чи оптимізації пам’яті. Я встановлюю наведені вище параметри в наведеному нижче коді та зберігаю відредагований документ як файл DOCX, захищений паролем і доступний лише для читання.

using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
    Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
    saveOptions.EnablePagination = true;
    saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
    saveOptions.OptimizeMemoryUsage = true;
    saveOptions.Password = "password";
    saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
    using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
    {
        editor.Save(afterEdit, outputStream, saveOptions);
    }
}

Повний код

Для вашої зручності я показую повний приклад C#, який описано вище, і він редагує документ Word, а потім зберігає його у форматі DOCX.

// Редагуйте документ Word на C# за допомогою API редагування та автоматизації документів GroupDocs
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{   // Load Document
    Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    loadOptions.Password = "password-if-any";
    // Редагувати документ
    using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
    {
        Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
        editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
        editOptions.EnableLanguageInformation = true;
        editOptions.EnablePagination = true;

        using (EditableDocument beforeEdit = editor.Edit(editOptions))
        {
            string originalContent = beforeEdit.GetContent();
            List<IHtmlResource> allResources = beforeEdit.AllResources;

            string editedContent = originalContent.Replace("document", "edited document");
            // Зберегти документ
            using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
            {
                WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
                Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
                            
                saveOptions.EnablePagination = true;
                saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
                saveOptions.OptimizeMemoryUsage = true;
                saveOptions.Password = "password";
                saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");

                using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
                {
                    editor.Save(afterEdit, outputStream, saveOptions);
                }
            }
        }
    }
}

Нижче наведено вихідний документ, у якому всі входження замінено за допомогою наведеного вище коду.

відредагований документ docx за допомогою API редактора

Вихідний документ – усі входження замінено

Висновок

На завершення ми обговорили редагування документів Word на C# за допомогою API редагування документів для програм .NET. Ви можете використовувати API з редакторами WYSIWYG для візуального редагування ваших документів. Після цього ви можете продовжити створення власного редактора документів. Подібним чином ви також можете інтегрувати функцію редагування у свою програму .NET.

Щоб отримати додаткові відомості, параметри та приклади, ви можете відвідати документацію і репозиторій GitHub. Щоб отримати додаткові запитання, зверніться до служби підтримки на форумі.

Схожі статті

Дивись також