استنساخ مستند
استنساخ مستند هو عملية إنشاء نسخة متطابقة من مستند أصلي، والتي يمكن أن تحسن الأداء وتخلصك من تسرب الذاكرة المحتمل.
تشرح هذه المقالة حالات الاستخدام الرئيسية لاستنساخ مستند وكيفية إنشاء نسخة مستند باستخدام Aspose.Words.
العمليات مع وثائق الاستنساخ
تتيح لك عملية النسخ جعل عملية إنشاء المستندات أسرع حيث لن تحتاج إلى تحميل مستند وتحليله من ملف في كل مرة.
بعد إنشاء نسخة من المستند الخاص بك، ستتمكن من تحريره وإجراء عمليات مختلفة عليه، على سبيل المثال، مقارنته بالمستند الأصلي أو إلحاقه أو إدراجه في مستند آخر. يمكنك أيضا تعديل العناصر المستنسخة أو محتواها قبل إدراجها في مستند آخر.
إنشاء استنساخ مستند
Aspose.Words يسمح لك باستنساخ مستند باستخدام طريقة Clone التي تؤدي نسخة عميقة من المستند وتعيده. بمعنى آخر، ستحصل على نسخة كاملة من DOM. تعمل طريقة Clone
على تسريع إنشاء المستندات، وتحتاج فقط إلى سطر واحد من التعليمات البرمجية للحصول على نسخة من المستند.
ينتج الاستنساخ مستندا جديدا بنفس محتويات المستند الأصلي، ولكن بنسخة فريدة من كل مستند أصلي nodes. يمكنك أيضا تطبيق عملية النسخ على عقدة مستند باستخدام طريقة العقدة 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()); |