Importowanie węzłów przy użyciu NodeImporter

Importowanie węzłów przy użyciu NodeImporter

Importowanie węzłów przy użyciu NodeImporter

Ten przewodnik pokazuje, jak przenieść treść między dwoma różnymi Document instancjami w Aspose.Words FOSS dla .NET przy użyciu dedykowanego NodeImporter klasy i szczegółowego ImportFormatOptions, dla scenariuszy, w których potrzebujesz importować wiele węzłów efektywnie lub kontrolować zachowanie importu poza podstawowym ImportFormatMode wyborem. Dla prostszych Document.ImportNode, Document.AppendDocument, oraz DocumentBuilder.InsertDocument metody ułatwiające, zobacz Praca z dokumentami poradnik.


NodeImporter: Powtarzalne importy bez powtarzającej się konfiguracji

NodeImporter jest przeznaczony do wielokrotnego importowania węzłów z jednego dokumentu do drugiego, unikając kosztu konfiguracji przy każdym wywołaniu przy jednorazowym imporcie. Utwórz go za pomocą new NodeImporter(srcDoc, dstDoc, importFormatMode) — lub przeciążenia new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) dla większej kontroli — raz, a następnie wywołuj ImportNode(srcNode, isImportChildren) na tej samej instancji dla każdego węzła, który chcesz przenieść. Ponowne użycie jednej instancji NodeImporter w wielu wywołaniach eliminuje koszt konfiguracji, który pojawia się przy każdym wygodnym imporcie.


Precyzyjna kontrola importu przy użyciu ImportFormatOptions

ImportFormatOptions uzupełnia podstawowy wybór ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) o bardziej szczegółowe przełączniki: SmartStyleBehavior (bool) kontroluje, w jaki sposób style o identycznych nazwach w źródle i miejscu docelowym są importowane. KeepSourceNumbering (bool) kontroluje, jak numeracja jest importowana, gdy zachodzi konflikt między źródłem a miejscem docelowym. IgnoreTextBoxes i IgnoreHeaderFooter (bool) tłumią formatowanie źródła dla treści w polach tekstowych oraz w nagłówkach/stopkach, szczególnie gdy KeepSourceFormatting jest aktywne. MergePastedLists (bool) scala wklejone listy z otaczającymi listami zamiast pozostawiać je oddzielnie. ForceCopyStyles (bool) kopiuje konflikujące style zamiast ponownie używać wersji docelowej, w trybie KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) automatycznie dostosowuje odstępy. AppendDocumentWithNewPage (bool) wymusza, aby typ pierwszej zaimportowanej sekcji był NewPage.


Wskazówki i najlepsze praktyki

  • Utwórz pojedynczy egzemplarz NodeImporter i używaj go ponownie w pętli wywołań ImportNode podczas importowania wielu węzłów — tworzenie nowego importera dla każdego węzła niepotrzebnie powtarza pracę konfiguracyjną.
  • Przekaż egzemplarz ImportFormatOptions do przeciążenia konstruktora NodeImporter, gdy prosta opcja ImportFormatMode nie jest wystarczająco precyzyjna — na przykład, aby zachować numerację listy źródeł przy użyciu KeepSourceNumbering, jednocześnie stosując KeepSourceFormatting w całości.
  • Ustaw IgnoreTextBoxes lub IgnoreHeaderFooter, gdy KeepSourceFormatting wciąga więcej stylizacji źródłowej niż potrzebujesz dla tych typów treści.
  • NodeImporter.ImportNode(srcNode, isImportChildren) odzwierciedla wywołanie importu na poziomie dokumentu pod względem sygnatury i zachowania; różnica polega na efektywności ponownego użycia, a nie na semantyce importu.

Typowe problemy

ProblemPrzyczynaNaprawa
Powtarzające się importy wielu węzłów są wolneWywołanie importu wygodnego jest używane dla każdego węzła zamiast jednego wielokrotnie używanego NodeImporterUtwórz pojedynczy NodeImporter i wywołaj ImportNode na nim dla każdego węzła
Numeracja listy resetuje się nieoczekiwanie po imporcieImportFormatOptions.KeepSourceNumbering nie zostało ustawioneUtwórz NodeImporter przy użyciu instancji ImportFormatOptions, która ustawia KeepSourceNumbering w razie potrzeby
Pole tekstowe lub zawartość nagłówka/stopki przejmuje niepożądane formatowanie źródłaTryb KeepSourceFormatting domyślnie stosuje stylowanie źródła w szerokim zakresieUstaw IgnoreTextBoxes lub IgnoreHeaderFooter na ImportFormatOptions przekazanym do NodeImporter

FAQ

Kiedy powinienem używać NodeImporter zamiast pojedynczego wywołania importu?

Podczas importowania wielu węzłów w pętli — utwórz jeden NodeImporter z góry i wywołuj ImportNode wielokrotnie, zamiast ponosić koszt konfiguracji przy każdym wywołaniu.

Co ImportFormatOptions dodaje poza ImportFormatMode?

Bardziej precyzyjne przełączniki, takie jak SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing i AppendDocumentWithNewPage, nakładane na podstawowy wybór ImportFormatMode.

Czy NodeImporter.ImportNode zachowuje się inaczej niż importowanie na poziomie dokumentu?

Nie — oba przyjmują węzeł źródłowy i flagę isImportChildren, a następnie importują go do dokumentu docelowego; NodeImporter istnieje, aby konfiguracja była wykonana raz i wykorzystywana w wielu wywołaniach.

Jak zachować niezmienione numerowanie listy w dokumencie źródłowym podczas importu?

Utwórz NodeImporter z ImportFormatOptions, gdzie KeepSourceNumbering jest true.


API Reference Podsumowanie

Klasa/MetodaOpis
NodeImporterWykonuje powtarzalny import węzłów z jednego dokumentu do drugiego, ponownie wykorzystując konfigurację w kolejnych wywołaniach
NodeImporter(srcDoc, dstDoc, importFormatMode)Konstruktor dla podstawowych importów wyłącznie w trybie formatu importu
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Konstruktor akceptujący drobnoziarniste ImportFormatOptions
NodeImporter.ImportNode(srcNode, isImportChildren)Importuje węzeł ze źródłowego dokumentu do dokumentu docelowego
ImportFormatOptionsDrobnoziarniste ustawienia importu nakładane na ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorJak importowane są style o tej samej nazwie
ImportFormatOptions.KeepSourceNumberingJak importowane jest kolidujące numerowanie
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterTłumi formatowanie źródłowe dla pól tekstowych / nagłówków-stopki w KeepSourceFormatting
ImportFormatOptions.MergePastedListsŁączy wklejone listy z otaczającymi listami
ImportFormatOptions.ForceCopyStylesKopiuje konfliktujące style zamiast ponownego użycia wersji docelowej
ImportFormatOptions.AppendDocumentWithNewPageUstawia typ pierwszej zaimportowanej sekcji na NewPage

Zobacz także

 Polski