Importera noder med NodeImporter

Importera noder med NodeImporter

Importera noder med NodeImporter

Den här guiden visar hur man flyttar innehåll mellan två olika Document instanser i Aspose.Words FOSS för .NET med den dedikerade NodeImporter klassen och finfördelad ImportFormatOptions, för scenarier där du behöver importera många noder effektivt eller kontrollera importbeteendet bortom den grundläggande ImportFormatMode valet. För de enklare Document.ImportNode, Document.AppendDocument, och DocumentBuilder.InsertDocument bekvämlighetsmetoder, se Arbeta med dokument guide.


NodeImporter: Upprepade importer utan upprepad konfiguration

NodeImporter är byggd för upprepade importer av noder från ett dokument till ett annat, och undviker uppsättningskostnaden per anrop för en engångsimport. Skapa en med new NodeImporter(srcDoc, dstDoc, importFormatMode) — eller överlagringen new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) för finare kontroll — en gång, och anropa sedan ImportNode(srcNode, isImportChildren) på samma instans för varje nod du vill föra över. Att återanvända en NodeImporter-instans över många anrop undviker den uppsättningskostnad som en per-anrop bekvämlighetsimport innebär varje gång.


Finjusterad importkontroll med ImportFormatOptions

ImportFormatOptions kompletterar det grundläggande ImportFormatMode-alternativet (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) med finare växlar: SmartStyleBehavior (bool) styr hur stilar med samma namn i källan och målet importeras. KeepSourceNumbering (bool) styr hur numrering importeras när den kolliderar mellan källa och mål. IgnoreTextBoxes och IgnoreHeaderFooter (bool) undertrycker källformatering för textrutor samt huvud-/fotsektioner specifikt när KeepSourceFormatting är aktiv. MergePastedLists (bool) slår ihop inklistrade listor med omgivande listor istället för att hålla dem separata. ForceCopyStyles (bool) kopierar konflikterande stilar istället för att återanvända målets version, i KeepSourceFormatting-läge. AdjustSentenceAndWordSpacing (bool) justerar automatiskt avstånd. AppendDocumentWithNewPage (bool) tvingar den första importerade sektionens typ till NewPage.


Tips och bästa praxis

  • Skapa en enda NodeImporter-instans och återanvänd den i en loop med ImportNode-anrop när du importerar många noder — att konstruera en ny importör per nod upprepar installationsarbetet onödigt.
  • Pass an ImportFormatOptions instance to the NodeImporter constructor overload when the plain ImportFormatMode choice isn’t precise enough — for example, to keep source list numbering with KeepSourceNumbering while still using KeepSourceFormatting overall.
  • Ställ in IgnoreTextBoxes eller IgnoreHeaderFooter när KeepSourceFormatting hämtar in mer källstil än du vill ha för just de innehållstyperna.
  • NodeImporter.ImportNode(srcNode, isImportChildren) speglar dokumentnivåns importanrop i signatur och beteende; skillnaden är återanvändningseffektivitet, inte importsemantik.

Vanliga problem

ProblemOrsakÅtgärd
Upprepade importeringar av många noder är långsammaEtt bekvämt importanrop används per nod istället för ett återanvänt NodeImporterSkapa ett enda NodeImporter och anropa ImportNode på det för varje nod
Listnumrering återställs oväntat efter importImportFormatOptions.KeepSourceNumbering var inte angivenKonstruera NodeImporter med en ImportFormatOptions instans som sätter KeepSourceNumbering efter behov
Textruta eller sidhuvud-/sidfotinnehåll plockar upp oönskad källformatteringKeepSourceFormatting-läge tillämpar källstilar brett som standardStäll in IgnoreTextBoxes eller IgnoreHeaderFooter på ImportFormatOptions som skickas till NodeImporter

FAQ

När bör jag använda NodeImporter istället för ett enstaka importanrop?

När du importerar många noder i en loop — konstruera en NodeImporter i förväg och anropa ImportNode upprepade gånger, istället för att betala installationskostnad för varje anrop.

Vad lägger ImportFormatOptions till utöver ImportFormatMode?

Finare växlar såsom SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing och AppendDocumentWithNewPage, lagda ovanpå det grundläggande valet ImportFormatMode.

Fungerar NodeImporter.ImportNode annorlunda än att importera på dokumentnivå?

Nej — båda tar en källnod och en isImportChildren-flagga och importerar den till destinationsdokumentet; NodeImporter finns så att konfigurationen görs en gång och återanvänds i många anrop.

Hur behåller jag källdokumentets listnumrering intakt när jag importerar?

Konstruera NodeImporter med en ImportFormatOptions där KeepSourceNumbering är true.


API Reference Sammanfattning

Klass/MetodBeskrivning
NodeImporterUtför upprepad import av noder från ett dokument till ett annat, och återanvänder konfigurationen mellan anrop
NodeImporter(srcDoc, dstDoc, importFormatMode)Konstruktor för grundläggande import-format-läge-endast-importer
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Konstruktor som accepterar finfördelad ImportFormatOptions
NodeImporter.ImportNode(srcNode, isImportChildren)Importerar en nod från källdokumentet till destinationsdokumentet
ImportFormatOptionsFinfördelade importinställningar lagrade ovanpå ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorHur lika namngivna stilar importeras
ImportFormatOptions.KeepSourceNumberingHur krockande numrering importeras
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterUndertrycker källformat för textrutor / sidhuvuden-sidfötter under KeepSourceFormatting
ImportFormatOptions.MergePastedListsSlår ihop inklistrade listor med omgivande listor
ImportFormatOptions.ForceCopyStylesKopierar motstridiga stilar istället för att återanvända destinationens version
ImportFormatOptions.AppendDocumentWithNewPageTvingar den första importerade sektionens typ till NewPage

Se även

 Svenska