โคลนเอกสาร
การโคลนเอกสารเป็นกระบวนการสร้างสำเนาที่เหมือนกันของเอกสารต้นฉบับซึ่งสามาร.
บทความนี้จะอธิบายกรณีการใช้งานหลักของการโคลนเอกสารและวิธีการสร้างโคลนเอกสารโดยใช้ Aspose.Words.
การดำเนินงานที่มีเอกสารการโคลน
การดำเนินการโคลนช่วยให้คุณสามารถทำให้กระบวนการของการสร้างเอกสารได้เร็วขึ้นในขณะที่คุณจะไม่จำเป็นต้องโหลดและแยกเอกสารจากไฟล์ทุกครั้ง.
หลังจากสร้างโคลนของเอกสารของคุณคุณจะสามารถที่จะแก้ไขและดำเนินการที่แตกต่างกันกับมันเช่นเปรียบเทียบกับเอกสารต้นฉบับผนวกหรือแทรกลงในเอกสารอื่น นอกจากนี้คุณยังสามารถปรับเปลี่ยนองค์ประกอบที่ถูกโคลนหรือเนื้อหาของพวกเขาก่อนที่จะ.
การสร้างโคลนเอกสาร
Aspose.Wordsช่วยให้คุณสามารถโคลนเอกสารโดยใช้วิธีการCloneที่ทำสำเนาลึกของเอกสารและส่งคืน กล่าวอีกนัยหนึ่งก็จะได้รับสำเนาเต็มรูปแบบของDOM วิธีการClone
ช่วยเพิ่มความเร็วในการสร้างเอกสารและคุณต้องใช้รหัสเพียงบรรทัดเดียวเพื่อรับสำเนาเอกสารของคุณ.
การโคลนจะสร้างเอกสารใหม่ที่มีเนื้อหาเหมือนกับต้นฉบับแต่มีสำเนาเฉพาะของเอกสารต้นฉบับแต่ละฉบับของnodes นอกจากนี้คุณยังสามารถใช้การดำเนินการโคลนกับโหนดเอกสารโดยใช้วิธีการโหนดCloneซึ่ง.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการโคลนเอกสารและสร้างซ้ำของส่วนในเอกสารนั้น:
// Create a Document. | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(); | |
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); | |
builder->Writeln(u"This is the original document before applying the clone method"); | |
// Clone the document. | |
System::SharedPtr<Document> clone = doc->Clone(); | |
// Edit the cloned document. | |
builder = System::MakeObject<DocumentBuilder>(clone); | |
builder->Write(u"Section 1"); | |
builder->InsertBreak(BreakType::SectionBreakNewPage); | |
builder->Write(u"Section 2"); | |
// This shows what is in the document originally. The document has two sections. | |
std::cout << clone->GetText().Trim() << std::endl << std::endl; | |
// Duplicate the last section and append the copy to the end of the document. | |
auto lastSectionIdx = clone->get_Sections()->get_Count() - 1; | |
System::SharedPtr<Section> newSection = clone->get_Sections()->idx_get(lastSectionIdx)->Clone(); | |
clone->get_Sections()->Add(newSection); | |
// Check what the document contains after we changed it. | |
std::cout << clone->GetText().Trim() << std::endl << std::endl; |