Clonar um documento
A clonagem de um documento é o processo de criação de uma cópia idêntica de um documento original, que pode melhorar o desempenho e evitar possíveis fugas de memória.
Este artigo explicará os principais casos de uso da clonagem de um documento e como criar um clone de documento usando Aspose.Words.
Operações com documentos de clonagem
A operação clone permite tornar o processo de criação de documentos mais rápido, pois você não precisará carregar e analisar um documento de um arquivo Todas as vezes.
Depois de criar um clone do seu documento, você poderá editá-lo e executar diferentes operações nele, por exemplo, compará-lo com o documento original, anexá-lo ou inseri-lo em outro documento. Você também pode modificar elementos clonados ou seu conteúdo antes de inseri-los em outro documento.
Criando um Clone de Documento
Aspose.Words permite clonar um documento usando o método Clone que executa uma cópia profunda do documento e o retorna. Em outras palavras, ele receberá uma cópia completa do DOM. O método Clone
acelera a geração de documentos, e você só precisa de uma linha de código para obter uma cópia do seu documento.
A clonagem produz um novo documento com o mesmo conteúdo do original, mas com uma cópia única de cada um dos nodes do documento original. Você também pode aplicar a operação de clonagem a um nó de documento usando o método node Clone, que permite duplicar nós de documento composto com e sem seus nós filhos.
O exemplo de código a seguir mostra como clonar um documento e criar uma duplicata de uma seção nesse documento:
// 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()); |