การนำเข้าโหนดด้วย NodeImporter

การนำเข้าโหนดด้วย NodeImporter

การนำเข้าโหนดด้วย NodeImporter

คู่มือนี้แสดงวิธีการย้ายเนื้อหาระหว่างสองระบบที่แตกต่างกัน Document อินสแตนซ์ใน Aspose.Words FOSS สำหรับ .NET โดยใช้แบบเฉพาะ NodeImporter คลาสและการควบคุมแบบละเอียด ImportFormatOptions, สำหรับสถานการณ์ที่คุณต้องการนำเข้าหนุดจำนวนมากอย่างมีประสิทธิภาพหรือควบคุมพฤติกรรมการนำเข้านอกเหนือจากพื้นฐาน ImportFormatMode ตัวเลือก. สำหรับแบบที่ง่ายกว่า Document.ImportNode, Document.AppendDocument, และ DocumentBuilder.InsertDocument เมธอดสะดวกสบาย, ดูที่ การทำงานกับเอกสาร คู่มือ.


NodeImporter: การนำเข้าซ้ำโดยไม่ต้องตั้งค่าซ้ำ

NodeImporter ถูกออกแบบมาสำหรับการนำเข้าโหนดแบบซ้ำจากเอกสารหนึ่งไปยังอีกเอกสารหนึ่ง เพื่อหลีกเลี่ยงค่าใช้จ่ายในการตั้งค่าต่อการเรียกของการนำเข้าแบบใช้ครั้งเดียว สร้างอ็อบเจกต์หนึ่งด้วย new NodeImporter(srcDoc, dstDoc, importFormatMode) — หรือการโหลดทับ new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) เพื่อควบคุมที่ละเอียดกว่า — เพียงครั้งเดียว แล้วเรียก ImportNode(srcNode, isImportChildren) บนอินสแตนซ์เดียวกันสำหรับทุกโหนดที่คุณต้องการย้าย การใช้ NodeImporter อินสแตนซ์เดียวซ้ำหลายครั้งช่วยหลีกเลี่ยงค่าใช้จ่ายการตั้งค่าที่เกิดจากการนำเข้าที่สะดวกต่อการเรียกแต่ละครั้ง.


การควบคุมการนำเข้าแบบละเอียดด้วย ImportFormatOptions

ImportFormatOptions เพิ่มเติมตัวเลือกพื้นฐาน ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) ด้วยสวิตช์ที่ละเอียดกว่า: SmartStyleBehavior (bool) ควบคุมวิธีการนำเข้าสไตล์ที่มีชื่อเท่ากันในแหล่งและปลายทาง KeepSourceNumbering (bool) ควบคุมวิธีการนำเข้าการนับเลขเมื่อเกิดการทับซ้อนระหว่างแหล่งและปลายทาง IgnoreTextBoxes และ IgnoreHeaderFooter (bool) ปิดการจัดรูปแบบของแหล่งสำหรับเนื้อหาในกล่องข้อความและส่วนหัว/ส่วนท้าเมื่อ KeepSourceFormatting มีผล MergePastedLists (bool) รวมรายการที่วางลงกับรายการรอบข้างแทนการแยกไว้ ForceCopyStyles (bool) คัดลอกสไตล์ที่ขัดแย้งแทนการใช้เวอร์ชันของปลายทาง ในโหมด KeepSourceFormatting AdjustSentenceAndWordSpacing (bool) ปรับระยะห่างโดยอัตโนมัติ AppendDocumentWithNewPage (bool) บังคับให้ประเภทของส่วนแรกที่นำเข้าคือ NewPage.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • สร้างอินสแตนซ์ NodeImporter เพียงหนึ่งตัวและใช้ซ้ำในลูปของการเรียก ImportNode เมื่อทำการนำเข้าหลายโหนด — การสร้างอิมพอร์เตอร์ใหม่ต่อโหนดจะทำซ้ำงานตั้งค่าโดยไม่จำเป็น.
  • ส่งอินสแตนซ์ ImportFormatOptions ไปยัง overload ตัวสร้าง NodeImporter เมื่อทางเลือก ImportFormatMode ธรรมดาไม่ละเอียดพอ — ตัวอย่างเช่น เพื่อรักษาการลำดับหมายเลขรายการแหล่งที่มาด้วย KeepSourceNumbering ในขณะที่ยังคงใช้ KeepSourceFormatting โดยรวม.
  • ตั้งค่า IgnoreTextBoxes หรือ IgnoreHeaderFooter เมื่อ KeepSourceFormatting ดึงสไตล์แหล่งที่มามากเกินกว่าที่คุณต้องการสำหรับประเภทเนื้อหานั้นเท่านั้น.
  • NodeImporter.ImportNode(srcNode, isImportChildren) สะท้อนการเรียกนำเข้าระดับเอกสารในลายเซ็นและพฤติกรรม; ความแตกต่างอยู่ที่ประสิทธิภาพการใช้ซ้ำ ไม่ใช่ความหมายของการนำเข้า.

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้ไข
การนำเข้าหลายโหนดซ้ำหลายครั้งทำให้ช้าใช้การเรียกนำเข้าที่สะดวกต่อโหนดแต่ละโหนดแทนการใช้ NodeImporter ที่ใช้ซ้ำสร้าง NodeImporter เพียงอันเดียวและเรียก ImportNode บนมันสำหรับแต่ละโหนด
การนับลำดับรายการรีเซ็ตโดยไม่คาดคิดหลังจากการนำเข้าImportFormatOptions.KeepSourceNumbering ไม่ได้ตั้งค่าสร้าง NodeImporter ด้วยอินสแตนซ์ของ ImportFormatOptions ที่ตั้งค่า KeepSourceNumbering ตามต้องการ
กล่องข้อความหรือเนื้อหาส่วนหัว/ส่วนท้ายรับการจัดรูปแบบต้นฉบับที่ไม่ต้องการโหมด KeepSourceFormatting จะใช้สไตล์ของแหล่งที่มาอย่างกว้างโดยค่าเริ่มต้นตั้งค่า IgnoreTextBoxes หรือ IgnoreHeaderFooter บน ImportFormatOptions ที่ส่งให้ NodeImporter

FAQ

เมื่อใดที่ฉันควรใช้ NodeImporter แทนการเรียกนำเข้าเดียว?

เมื่อทำการนำเข้าหลายโหนดในลูป — สร้าง NodeImporter หนึ่งตัวล่วงหน้าและเรียก ImportNode ซ้ำ ๆ แทนที่จะจ่ายค่าใช้จ่ายการตั้งค่าต่อการเรียกแต่ละครั้ง.

อะไรที่ ImportFormatOptions เพิ่มเหนือ ImportFormatMode?

สวิตช์ที่ละเอียดกว่า เช่น SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing และ AppendDocumentWithNewPage, ซึ่งวางซ้อนบนตัวเลือกพื้นฐาน ImportFormatMode.

ส่วน NodeImporter.ImportNode ทำงานแตกต่างจากการนำเข้าที่ระดับเอกสารหรือไม่?

ไม่ — ทั้งสองรับโหนดต้นทางและแฟล็ก isImportChildren แล้วนำเข้าไปยังเอกสารปลายทาง; NodeImporter มีไว้เพื่อให้การตั้งค่าทำครั้งเดียวและนำกลับมาใช้ใหม่ในหลายการเรียก.

ฉันจะทำอย่างไรเพื่อให้การจัดลำดับรายการของเอกสารต้นทางคงเดิมเมื่อนำเข้า?

สร้าง NodeImporter ด้วย ImportFormatOptions ที่ KeepSourceNumbering เป็น true.


API Reference สรุป

คลาส/เมธอดคำอธิบาย
NodeImporterทำการนำเข้าโหนดซ้ำจากเอกสารหนึ่งไปยังอีกเอกสารหนึ่ง โดยใช้การตั้งค่าเดิมซ้ำในแต่ละการเรียก
NodeImporter(srcDoc, dstDoc, importFormatMode)ตัวสร้างสำหรับการนำเข้าที่ใช้โหมดรูปแบบการนำเข้าขั้นพื้นฐานเท่านั้น
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)ตัวสร้างที่รับ ImportFormatOptions แบบละเอียด
NodeImporter.ImportNode(srcNode, isImportChildren)นำเข้าโหนดจากเอกสารต้นทางไปยังเอกสารปลายทาง
ImportFormatOptionsการตั้งค่าการนำเข้าแบบละเอียดที่ซ้อนอยู่บน ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorวิธีการนำเข้าแบบสไตล์ที่มีชื่อเดียวกัน
ImportFormatOptions.KeepSourceNumberingวิธีการนำเข้าการจัดลำดับที่ขัดแย้งกัน
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterปิดการจัดรูปแบบต้นฉบับสำหรับกล่องข้อความ / ส่วนหัว-ส่วนท้าย ภายใต้ KeepSourceFormatting
ImportFormatOptions.MergePastedListsรวมรายการที่วางลงเข้ากับรายการรอบข้าง
ImportFormatOptions.ForceCopyStylesคัดลอกสไตล์ที่ขัดแย้งแทนที่จะใช้เวอร์ชันของปลายทาง
ImportFormatOptions.AppendDocumentWithNewPageบังคับให้ประเภทของส่วนที่นำเข้าครั้งแรกเป็น NewPage

ดูเพิ่มเติม

 ภาษาไทย