Клонировать документ

Клонирование документа - это процесс создания идентичной копии оригинального документа, которая может улучшить производительность и спасти вас от потенциальных утечек памяти.

В данной статье разъясняются основные случаи использования клонирования документа и способы создания документа с использованием клона. Aspose.Words.

Операции с документами клонирования

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

После создания клона вашего документа вы сможете редактировать его и выполнять на нем различные операции, например, сравнивать его с оригиналом документа, добавлять или вставлять в другой документ. Вы также можете изменить клонированные элементы или их содержимое, прежде чем вставлять их в другой документ.

Создание клона документа

Aspose.Words позволяет клонировать документ с помощью Clone метод, который выполняет глубокую копию документа и возвращает его. Таким образом, он получит полную копию DOM. The Clone Метод ускоряет генерацию документов, и для получения копии документа вам нужна только одна строка кода.

Клонирование создает новый документ с тем же содержанием, что и оригинал, но с уникальной копией каждого оригинального документа. nodes. Вы также можете применить операцию клона к узлу документа, используя узел. Clone метод, позволяющий дублировать композитные документные узлы с их дочерними узлами и без них.

Следующий пример кода показывает, как клонировать документ и создать дубликат раздела в этом документе:

// Create a document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("This is the original document before applying the clone method"); 

// Clone the document.
Document clone = doc.Clone();

// Edit the cloned document.
DocumentBuilder builder = new DocumentBuilder(clone);
builder.Write("Section 1");
builder.InsertBreak(BreakType.SectionBreakNewPage);
builder.Write("Section 2");

// This shows what is in the document originally. The document has two sections.
Assert.AreEqual("Section 1\x000cSection 2", clone.GetText().Trim());

// Duplicate the last section and append the copy to the end of the document.
int lastSectionIdx = clone.Sections.Count - 1;
Section newSection = clone.Sections[lastSectionIdx].Clone();
clone.Sections.Add(newSection);

// Check what the document contains after we changed it.
Assert.AreEqual("Section 1\x000cSection 2", clone.GetText().Trim());