Importování uzlů pomocí NodeImporter

Importování uzlů pomocí NodeImporter

Importování uzlů pomocí NodeImporter

Tento průvodce ukazuje, jak přesunout obsah mezi dvěma různými Document instancemi v Aspose.Words FOSS pro .NET pomocí vyhrazeného NodeImporter třídy a jemně granulovaného ImportFormatOptions, pro scénáře, kdy potřebujete efektivně importovat mnoho uzlů nebo řídit chování importu nad rámec základního ImportFormatMode výběru. Pro jednodušší Document.ImportNode, Document.AppendDocument, a DocumentBuilder.InsertDocument praktické metody, viz Práce s dokumenty průvodce.


NodeImporter: Opakované importy bez opakovaného nastavení

NodeImporter je vytvořen pro opakovaný import uzlů z jednoho dokumentu do druhého, čímž se vyhýbá nákladům na nastavení při každém volání při jednorázovém importu. Vytvořte jej pomocí new NodeImporter(srcDoc, dstDoc, importFormatMode) — nebo přetížením new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) pro jemnější kontrolu — jednou, poté volejte ImportNode(srcNode, isImportChildren) na stejné instanci pro každý uzel, který potřebujete přenést. Opětovné použití jedné instance NodeImporter při mnoha voláních eliminuje náklady na nastavení, které při každém volání pohodlného importu vznikají.


Jemná kontrola importu pomocí ImportFormatOptions

ImportFormatOptions doplňuje základní volbu ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) jemnějšími přepínači: SmartStyleBehavior (bool) řídí, jak jsou importovány styly se stejnými názvy ve zdroji i cíli. KeepSourceNumbering (bool) řídí, jak je importováno číslování, když dochází ke kolizi mezi zdrojem a cílem. IgnoreTextBoxes a IgnoreHeaderFooter (bool) potlačují formátování zdroje pro textová pole a obsah záhlaví/pati, konkrétně když je v platnosti KeepSourceFormatting. MergePastedLists (bool) slučuje vložené seznamy s okolními seznamy místo jejich odděleného zachování. ForceCopyStyles (bool) kopíruje konfliktní styly místo opakovaného použití verze cíle, v režimu KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) automaticky upravuje mezery. AppendDocumentWithNewPage (bool) vynutí, aby typ první importované sekce byl NewPage.


Tipy a osvědčené postupy

  • Vytvořte jedinou instanci NodeImporter a znovu ji použijte v rámci smyčky volání ImportNode při importu mnoha uzlů — vytváření nového importéru pro každý uzel zbytečně opakuje nastavení.
  • Předejte instanci ImportFormatOptions do přetíženého konstruktoru NodeImporter, pokud prostá volba ImportFormatMode není dostatečně přesná — například pro zachování číslování zdrojového seznamu pomocí KeepSourceNumbering, zatímco celkově stále používáte KeepSourceFormatting.
  • Nastavte IgnoreTextBoxes nebo IgnoreHeaderFooter, když KeepSourceFormatting načítá více stylování zdroje, než chcete pro tyto typy obsahu.
  • NodeImporter.ImportNode(srcNode, isImportChildren) odráží importní volání na úrovni dokumentu v signatuře i chování; rozdíl spočívá v efektivitě opětovného použití, nikoli v semantice importu.

Časté problémy

ProblémPříčinaOprava
Opakované importy mnoha uzlů jsou pomaléPro každý uzel se používá pohodlné importní volání místo jednoho znovu použitého NodeImporterVytvořte jediný NodeImporter a zavolejte na něj ImportNode pro každý uzel
Číslování seznamu se neočekávaně resetuje po importuImportFormatOptions.KeepSourceNumbering nebyl nastavenVytvořte NodeImporter s instancí ImportFormatOptions, která nastaví KeepSourceNumbering podle potřeby
Obsah textového pole nebo hlavičky/patičky zachytává nechtěné formátování zdrojeRežim KeepSourceFormatting ve výchozím nastavení aplikuje stylování zdroje obecněNastavte IgnoreTextBoxes nebo IgnoreHeaderFooter na ImportFormatOptions předaný do NodeImporter

FAQ

Kdy bych měl použít NodeImporter místo jediného importního volání?

Při importu mnoha uzlů ve smyčce — vytvořte jednu NodeImporter předem a opakovaně volajte ImportNode, místo aby se na každém volání platil náklad na nastavení.

Co ImportFormatOptions přidává nad ImportFormatMode?

Jemnější přepínače, jako jsou SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing a AppendDocumentWithNewPage, vrstvené nad základní volbu ImportFormatMode.

Chová se NodeImporter.ImportNode jinak než importování na úrovni dokumentu?

Ne — oba přijímají zdrojový uzel a příznak isImportChildren a importují jej do cílového dokumentu; NodeImporter existuje proto, aby se nastavení provedlo jednou a znovu použilo při mnoha voláních.

Jak při importu zachovat číslování seznamu ve zdrojovém dokumentu nedotčené?

Sestavte NodeImporter s ImportFormatOptions, kde je KeepSourceNumbering true.


API Reference Shrnutí

Třída/MetodaPopis:
NodeImporterProvádí opakovaný import uzlů z jednoho dokumentu do druhého, přičemž znovu používá nastavení mezi voláními
NodeImporter(srcDoc, dstDoc, importFormatMode)Konstruktor pro základní importy pouze ve formátu import-format-mode
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Konstruktor přijímající jemně granulární ImportFormatOptions
NodeImporter.ImportNode(srcNode, isImportChildren)Importuje uzel ze zdrojového dokumentu do cílového dokumentu
ImportFormatOptionsJemné nastavení importu vrstvené nad ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorJak se importují styly se stejným názvem
ImportFormatOptions.KeepSourceNumberingJak se importuje kolidující číslování
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterPotlačuje formátování zdroje pro textová pole / záhlaví a zápatí pod KeepSourceFormatting
ImportFormatOptions.MergePastedListsSpojuje vložené seznamy s okolními seznamy
ImportFormatOptions.ForceCopyStylesKopíruje konfliktní styly místo opětovného použití verze cíle
ImportFormatOptions.AppendDocumentWithNewPageVynutí typ první importované sekce na NewPage

Viz také:

 Čeština