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

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

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

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

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

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

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

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

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

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// 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.deepClone();
// Edit the cloned document.
builder = new DocumentBuilder(clone);
builder.write("Section 1");
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
builder.write("Section 2");
// This shows what is in the document originally. The document has two sections.
System.out.println(clone.getText().trim());
// Duplicate the last section and append the copy to the end of the document.
int lastSectionIdx = clone.getSections().getCount() - 1;
Section newSection = clone.getSections().get(lastSectionIdx).deepClone();
clone.getSections().add(newSection);
// Check what the document contains after we changed it.
System.out.println(clone.getText().trim());