Імпорт вузлів за допомогою 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 у перевантаження конструктора 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)Конструктор для базових імпортів лише у режимі import-format-mode
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

Дивіться також

 Українська