Расширенное использование редактируемых документов

Введение

Если вы разработчик .NET и хотите расширить свои возможности редактирования документов, GroupDocs.Editor для .NET предлагает мощный набор инструментов. Это подробное руководство познакомит вас с расширенными возможностями использования редактируемых документов с помощью GroupDocs.Editor, подробно разбив каждый шаг, чтобы вы могли использовать весь его потенциал.

Предварительные условия

Прежде чем углубляться в расширенные функции, убедитесь, что у вас есть следующее:

Импортировать пространства имен

Для начала убедитесь, что вы импортировали необходимые пространства имен в свой проект .NET:

using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.HtmlCss.Resources.Fonts;
using GroupDocs.Editor.HtmlCss.Resources.Images;
using GroupDocs.Editor.HtmlCss.Resources.Textual;
using GroupDocs.Editor.Options;

Шаг 1. Создание экземпляра EditableDocument

Сначала вам нужно создать экземплярEditableDocument путем загрузки и редактирования входного документа поддерживаемого формата.

string inputFilePath = "YourSampleDocument.docx";
Editor editor = new Editor(inputFilePath, delegate { return new WordProcessingLoadOptions(); });
EditableDocument beforeEdit = editor.Edit(new WordProcessingEditOptions());

На этом этапе мы загружаем входной документ и подготавливаем его к редактированию.

Шаг 2. Извлечение ресурсов документа

EditableDocument содержит различные ресурсы, которые можно извлекать и манипулировать ими. Давайте разберем их:

Шаг 2.1. Извлеките весь документ в формате HTML

Вы можете создать одну строку, содержащую весь документ со всеми его ресурсами, внедренными в виде HTML.

string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();

Эта строка будет довольно большой, поскольку она включает таблицы стилей, изображения и шрифты, закодированные в base64.

Шаг 2.2: Извлеките все изображения

Извлеките все изображения из документа.

List<IImageResource> allImages = beforeEdit.Images;

Шаг 2.3: Извлеките все шрифты

Извлеките все шрифты, используемые в документе.

List<FontResourceBase> allFonts = beforeEdit.Fonts;

Шаг 2.4: Извлеките все таблицы стилей

Извлеките все таблицы стилей в текстовом формате.

List<CssText> allStylesheets = beforeEdit.Css;

Шаг 2.5: Соберите все ресурсы

Соберите все ресурсы за один звонок.

List<IHtmlResource> allResources = beforeEdit.AllResources;

Сюда входят изображения, шрифты и таблицы стилей.

Шаг 2.6: Получите HTML-разметку

Получите HTML-разметку документа без встроенных ресурсов.

string htmlMarkup = beforeEdit.GetContent();

Шаг 3. Настройка внешних ссылок

Иногда вам необходимо настроить внешние ссылки, чтобы они указывали на собственный обработчик ресурсов. Вот как это сделать:

Шаг 3.1. Подготовьте пользовательские префиксы

Подготовьте префиксы, которые будут добавлять оригинальные внешние ссылки.

string customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
string customCssRequesthandlerUri = "http://example.com/CssHandler/id=";
string customFontsRequesthandlerUri = "http://example.com/FontsHandler/id=";

Шаг 3.2. Создание префиксной HTML-разметки

Создайте HTML-разметку с настроенными ссылками.

string prefixedHtmlMarkup = beforeEdit.GetContent(customImagesRequesthandlerUri, customCssRequesthandlerUri);

Шаг 3.3: Получите HTML-контент только для тела

Некоторые редакторы WYSIWYG обрабатывают только чистую HTML-разметку без заголовков.

string onlyBodyContent = beforeEdit.GetBodyContent();

Шаг 3.4. Содержимое только с префиксом

Создавайте только основной контент с настраиваемыми префиксами изображений.

string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);

Шаг 3.5: Извлечение таблиц стилей

Извлеките таблицы стилей, используемые в документе.

List<string> stylesheets = beforeEdit.GetCssContent();

Шаг 3.6: Таблицы стилей с префиксами

Извлекайте таблицы стилей с пользовательскими префиксами.

List<string> prefixedStylesheets = beforeEdit.GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri);

Шаг 4. Сохраните документ в формате HTML.

Сохраните отредактированный документ как HTML-файл, включая его ресурсы.

string htmlFilePath = Path.Combine("output", Path.GetFileNameWithoutExtension(inputFilePath) + ".html");
beforeEdit.Save(htmlFilePath);

Этот метод создает отдельный каталог для таких ресурсов, как таблицы стилей, изображения и шрифты.

Шаг 5. Удаление EditableDocument

EditableDocument реализуетIDisposable и предоставляет возможность проверить, удален ли экземпляр.

Console.WriteLine("EditableDocument is {0} disposed", !beforeEdit.IsDisposed ? "not" : "already");

Шаг 5.1. Обработка события удаления

Вы также можете подписаться на событие утилизации.

EventHandler someMethod = delegate { Console.WriteLine("Disposing event was spotted!"); };
beforeEdit.Disposed += someMethod;

Шаг 6. Создание EditableDocument из HTML

Создайте экземпляр EditableDocument из HTML-документа.

Шаг 6.1: Из HTML-файла

EditableDocument afterEditFromFile = EditableDocument.FromFile(htmlFilePath, null);

Шаг 6.2: Из HTML-разметки

EditableDocument afterEditFromMarkup = EditableDocument.FromMarkup(htmlMarkup, allResources);

Эти экземпляры (afterEditFromFile и afterEditFromMarkup) идентичны оригиналу (beforeEdit).

Шаг 7: Утилизация вручную

Вручную удалите экземпляры EditableDocument.

beforeEdit.Dispose();
afterEditFromFile.Dispose();
afterEditFromMarkup.Dispose();
editor.Dispose();

Это обеспечивает правильную очистку ресурсов.

Заключение

GroupDocs.Editor для .NET предоставляет надежные инструменты для программного редактирования документов. Следуя этому пошаговому руководству, вы сможете эффективно управлять содержимым документа, ресурсами и форматами вывода. Независимо от того, встраиваете ли вы ресурсы, настраиваете внешние ссылки или конвертируете документы в HTML, GroupDocs.Editor предоставляет вам функциональные возможности, необходимые для расширенного манипулирования документами.

Часто задаваемые вопросы

Какие форматы поддерживает GroupDocs.Editor?

GroupDocs.Editor поддерживает различные форматы, включая DOCX, XLSX, PPTX и другие.

Могу ли я использовать GroupDocs.Editor без лицензии?

Да, вы можете использовать его сбесплатная пробная версия иливременная лицензия.

Как извлечь определенные ресурсы из документа?

Вы можете извлекать изображения, шрифты и таблицы стилей, используя предоставленные методы, такие какImages, Fonts , иCss.

Можно ли настроить ссылки в выводе HTML?

Да, вы можете настроить внешние ссылки, указав собственные префиксы для изображений, CSS и шрифтов.

Как сохранить отредактированный документ в виде HTML-файла?

ИспользоватьSave методEditableDocumentclass для сохранения документа в виде HTML-файла, включая его ресурсы.