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 medImportNode-anrop när du importerar många noder — att konstruera en ny importör per nod upprepar installationsarbetet onödigt. - Pass an
ImportFormatOptionsinstance to theNodeImporterconstructor overload when the plainImportFormatModechoice isn’t precise enough — for example, to keep source list numbering withKeepSourceNumberingwhile still usingKeepSourceFormattingoverall. - Ställ in
IgnoreTextBoxesellerIgnoreHeaderFooternärKeepSourceFormattinghä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
| Problem | Orsak | Åtgärd |
|---|---|---|
| Upprepade importeringar av många noder är långsamma | Ett bekvämt importanrop används per nod istället för ett återanvänt NodeImporter | Skapa ett enda NodeImporter och anropa ImportNode på det för varje nod |
| Listnumrering återställs oväntat efter import | ImportFormatOptions.KeepSourceNumbering var inte angiven | Konstruera NodeImporter med en ImportFormatOptions instans som sätter KeepSourceNumbering efter behov |
| Textruta eller sidhuvud-/sidfotinnehåll plockar upp oönskad källformattering | KeepSourceFormatting-läge tillämpar källstilar brett som standard | Stä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/Metod | Beskrivning |
|---|---|
NodeImporter | Utfö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 |
ImportFormatOptions | Finfördelade importinställningar lagrade ovanpå ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Hur lika namngivna stilar importeras |
ImportFormatOptions.KeepSourceNumbering | Hur krockande numrering importeras |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Undertrycker källformat för textrutor / sidhuvuden-sidfötter under KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Slår ihop inklistrade listor med omgivande listor |
ImportFormatOptions.ForceCopyStyles | Kopierar motstridiga stilar istället för att återanvända destinationens version |
ImportFormatOptions.AppendDocumentWithNewPage | Tvingar den första importerade sektionens typ till NewPage |