Nhập Node bằng NodeImporter

Nhập các nút bằng NodeImporter

Hướng dẫn này cho thấy cách di chuyển nội dung giữa hai khác nhau Document các instance trong Aspose.Words FOSS cho .NET sử dụng bộ dành riêng NodeImporter lớp và chi tiết ImportFormatOptions, cho các kịch bản mà bạn cần nhập nhiều nút một cách hiệu quả hoặc kiểm soát hành vi nhập vượt quá mức cơ bản ImportFormatMode lựa chọn. Đối với các Document.ImportNode, Document.AppendDocument, và DocumentBuilder.InsertDocument phương thức tiện lợi, xem Làm việc với Tài liệu hướng dẫn.


NodeImporter: Nhập lặp lại mà không cần thiết lập lặp lại

NodeImporter được thiết kế cho việc nhập lặp lại các nút từ tài liệu này sang tài liệu khác, tránh chi phí thiết lập cho mỗi lần gọi của một lần nhập duy nhất. Tạo một đối tượng bằng new NodeImporter(srcDoc, dstDoc, importFormatMode) — hoặc phiên bản quá tải new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) để kiểm soát chi tiết hơn — một lần, sau đó gọi ImportNode(srcNode, isImportChildren) trên cùng một thể hiện đó cho mỗi nút bạn cần chuyển. Việc tái sử dụng một thể hiện NodeImporter trong nhiều lần gọi tránh chi phí thiết lập mà một lần nhập tiện lợi mỗi lần gọi sẽ gây ra.


Kiểm soát nhập chi tiết với ImportFormatOptions

ImportFormatOptions bổ sung lựa chọn ImportFormatMode cơ bản (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) bằng các công tắc chi tiết hơn: SmartStyleBehavior (bool) kiểm soát cách các kiểu có cùng tên trong nguồn và đích được nhập. KeepSourceNumbering (bool) kiểm soát cách đánh số được nhập khi xảy ra xung đột giữa nguồn và đích. IgnoreTextBoxes và IgnoreHeaderFooter (bool) loại bỏ định dạng nguồn cho nội dung hộp văn bản và đầu/trang chân cụ thể khi KeepSourceFormatting đang có hiệu lực. MergePastedLists (bool) hợp nhất các danh sách đã dán với các danh sách xung quanh thay vì giữ chúng riêng biệt. ForceCopyStyles (bool) sao chép các kiểu xung đột thay vì tái sử dụng phiên bản của đích, trong chế độ KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) tự động điều chỉnh khoảng cách. AppendDocumentWithNewPage (bool) buộc loại phần đầu tiên được nhập thành NewPage.


Mẹo và Thực hành tốt nhất

  • Tạo một thể hiện NodeImporter duy nhất và tái sử dụng nó trong vòng lặp các lời gọi ImportNode khi nhập nhiều nút — việc tạo một importer mới cho mỗi nút sẽ lặp lại công việc thiết lập một cách không cần thiết.
  • Truyền một thể hiện ImportFormatOptions vào overload của hàm khởi tạo NodeImporter khi lựa chọn ImportFormatMode đơn giản không đủ chính xác — ví dụ, để giữ đánh số danh sách nguồn bằng KeepSourceNumbering trong khi vẫn sử dụng KeepSourceFormatting cho toàn bộ.
  • Đặt IgnoreTextBoxes hoặc IgnoreHeaderFooter khi KeepSourceFormatting kéo vào nhiều kiểu dáng nguồn hơn mức bạn muốn chỉ cho các loại nội dung đó.
  • NodeImporter.ImportNode(srcNode, isImportChildren) phản chiếu lời gọi nhập cấp tài liệu về chữ ký và hành vi; sự khác biệt là hiệu suất tái sử dụng, không phải ngữ nghĩa nhập.

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
Nhập lại nhiều nút lặp lại rất chậmMỗi nút sử dụng một lời gọi nhập tiện lợi thay vì một NodeImporter được tái sử dụngTạo một NodeImporter duy nhất và gọi ImportNode trên nó cho mỗi nút
Số thứ tự danh sách bị đặt lại một cách bất ngờ sau khi nhậpImportFormatOptions.KeepSourceNumbering chưa được thiết lậpXây dựng NodeImporter với một thể hiện ImportFormatOptions mà thiết lập KeepSourceNumbering theo nhu cầu
Nội dung hộp văn bản hoặc header/footer nhận định dạng nguồn không mong muốnChế độ KeepSourceFormatting áp dụng kiểu dáng nguồn một cách rộng rãi theo mặc địnhĐặt IgnoreTextBoxes hoặc IgnoreHeaderFooter trên ImportFormatOptions được truyền cho NodeImporter

FAQ

Khi nào tôi nên dùng NodeImporter thay vì một lời gọi nhập duy nhất?

Khi nhập nhiều nút trong một vòng lặp — tạo một NodeImporter ngay từ đầu và gọi ImportNode liên tục, thay vì phải trả chi phí thiết lập cho mỗi lời gọi.

Điều gì ImportFormatOptions bổ sung so với ImportFormatMode?

Các công tắc chi tiết hơn như SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing và AppendDocumentWithNewPage, được xếp lớp lên trên lựa chọn ImportFormatMode cơ bản.

Liệu NodeImporter.ImportNode có hoạt động khác so với việc nhập ở cấp độ tài liệu không?

Không — cả hai đều nhận một nút nguồn và một cờ isImportChildren, rồi nhập nó vào tài liệu đích; NodeImporter tồn tại để việc thiết lập được thực hiện một lần và tái sử dụng trong nhiều lời gọi.

Làm thế nào để giữ nguyên đánh số danh sách của tài liệu nguồn khi nhập?

Xây dựng NodeImporter với một ImportFormatOptions trong đó KeepSourceNumbering là true.


API Reference Tóm tắt

Lớp/Phương thứcMô tả
NodeImporterThực hiện việc nhập lại nhiều lần các nút từ tài liệu này sang tài liệu khác, tái sử dụng thiết lập qua các lần gọi
NodeImporter(srcDoc, dstDoc, importFormatMode)Constructor cho các import ở chế độ định dạng-import cơ bản
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Constructor chấp nhận ImportFormatOptions chi tiết
NodeImporter.ImportNode(srcNode, isImportChildren)Nhập một nút từ tài liệu nguồn vào tài liệu đích
ImportFormatOptionsCài đặt import chi tiết được xếp lớp trên ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorCách nhập các kiểu có tên giống nhau
ImportFormatOptions.KeepSourceNumberingCách nhập số thứ tự xung đột
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterLoại bỏ định dạng nguồn cho các hộp văn bản / tiêu đề-chân trang dưới KeepSourceFormatting
ImportFormatOptions.MergePastedListsKết hợp các danh sách đã dán với các danh sách xung quanh
ImportFormatOptions.ForceCopyStylesSao chép các kiểu xung đột thay vì tái sử dụng phiên bản của đích
ImportFormatOptions.AppendDocumentWithNewPageÉp buộc kiểu của phần đã nhập đầu tiên thành NewPage

Xem thêm

 Tiếng Việt