Klonen Sie ein Dokument

Beim Klonen eines Dokuments wird eine identische Kopie eines Originaldokuments erstellt, was die Leistung verbessern und Sie vor möglichen Speicherlecks schützen kann.

In diesem Artikel werden die wichtigsten Anwendungsfälle des Klonens eines Dokuments erläutert und erläutert, wie man mit Aspose.Words einen Dokumentklon erstellt.

Operationen mit Klonen von Dokumenten

Durch den Klonvorgang können Sie den Prozess der Dokumentenerstellung beschleunigen, da Sie nicht jedes Mal ein Dokument aus einer Datei laden und analysieren müssen.

Nachdem Sie einen Klon Ihres Dokuments erstellt haben, können Sie es bearbeiten und verschiedene Vorgänge daran ausführen, z. B. es mit dem Originaldokument vergleichen, es anhängen oder in ein anderes Dokument einfügen. Sie können geklonte Elemente oder deren Inhalt auch ändern, bevor Sie sie in ein anderes Dokument einfügen.

Erstellen eines Dokumentklons

Mit Aspose.Words können Sie ein Dokument mithilfe der Clone-Methode klonen, die eine tiefe Kopie des Dokuments erstellt und es zurückgibt. Mit anderen Worten: Es wird eine vollständige Kopie des DOM-Codes erstellt. Die Clone-Methode beschleunigt die Dokumentenerstellung und Sie benötigen nur eine Codezeile, um eine Kopie Ihres Dokuments zu erhalten.

Durch das Klonen entsteht ein neues Dokument mit demselben Inhalt wie das Original, jedoch mit einer eindeutigen Kopie aller nodes-Dateien des Originaldokuments. Sie können den Klonvorgang auch auf einen Dokumentknoten anwenden, indem Sie die Knoten-Clone-Methode verwenden, die es Ihnen ermöglicht, zusammengesetzte Dokumentknoten mit und ohne ihre untergeordneten Knoten zu duplizieren.

Das folgende Codebeispiel zeigt, wie Sie ein Dokument klonen und ein Duplikat eines Abschnitts in diesem Dokument erstellen:

// 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());