Klonovat dokument
Klonování dokumentu je proces vytvoření stejné kopie původního dokumentu, který může zlepšit výkon a ušetřit vás před potenciálními úniky paměti.
Tento článek vysvětlí hlavní případy použití klonování dokumentu a způsob vytvoření klonu dokumentu pomocí Aspose.Words.
Operace s klonovacími dokumenty
Klonová operace umožňuje rychlejší vytváření dokumentů, protože nebudete muset načíst a pokaždé analyzovat dokument ze souboru.
Po vytvoření klonu vašeho dokumentu jej budete moci upravit a provádět na něm různé operace, například jej porovnat s původním dokumentem, doplnit nebo vložit do jiného dokumentu. Před vložením do jiného dokumentu můžete také upravit klonované prvky nebo jejich obsah.
Vytvoření klonu dokumentu
Aspose.Words umožňuje naklonovat dokument pomocí Clone metoda, která provádí hlubokou kopii dokumentu a vrací jej. Jinými slovy, dostane plnou kopii DOM. The Clone
metoda urychluje generování dokumentů a k získání kopie dokumentu potřebujete pouze jeden řádek kódu.
Klonování vytváří nový dokument se stejným obsahem jako originál, ale s jedinečnou kopií každého z původních dokumentů nodes. Můžete také použít klonovou operaci na uzel dokumentu pomocí uzel Clone metoda, která umožňuje duplikovat kompozitní dokumentové uzly s a bez jejich dětských uzlů.
Následující příklad kódu ukazuje, jak naklonovat dokument a vytvořit duplikát oddílu v tomto dokumentu:
// 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()); |