Importeren van knooppunten met NodeImporter
Nodes importeren met NodeImporter
Deze gids laat zien hoe je inhoud kunt verplaatsen tussen twee verschillende Document instanties in Aspose.Words FOSS voor .NET met behulp van de toegewijde NodeImporter klasse en fijnmazige ImportFormatOptions, voor scenario’s waarin je veel knooppunten efficiënt moet importeren of het importgedrag moet beheersen voorbij de basis ImportFormatMode keuze. Voor de eenvoudigere Document.ImportNode, Document.AppendDocument, en DocumentBuilder.InsertDocument handige methoden, zie de Werken met Documenten gids.
NodeImporter: Herhaalde imports zonder herhaalde setup
NodeImporter is gebouwd voor herhaalde import van nodes van het ene document naar het andere, waardoor de setup-kost per oproep van een eenmalige import wordt vermeden. Maak er één met new NodeImporter(srcDoc, dstDoc, importFormatMode) — of de overload new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) voor fijnere controle — één keer, en roep vervolgens ImportNode(srcNode, isImportChildren) aan op diezelfde instantie voor elke node die je wilt overbrengen. Het hergebruiken van één NodeImporter instantie over vele oproepen vermijdt de setup-kost die een per-oproep gebruiksgemak-import elke keer met zich meebrengt.
Fijnmazige importcontrole met ImportFormatOptions
ImportFormatOptions vult de basis ImportFormatMode keuze (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) aan met fijnere schakelaars: SmartStyleBehavior (bool) bepaalt hoe stijlen met gelijke namen in de bron en bestemming worden geïmporteerd. KeepSourceNumbering (bool) bepaalt hoe nummering wordt geïmporteerd wanneer deze conflicteert tussen bron en bestemming. IgnoreTextBoxes en IgnoreHeaderFooter (bool) onderdrukken bronopmaak voor tekstvak- en kop-/voettekst-inhoud specifiek wanneer KeepSourceFormatting van kracht is. MergePastedLists (bool) voegt geplakte lijsten samen met omliggende lijsten in plaats van ze apart te houden. ForceCopyStyles (bool) kopieert conflicterende stijlen in plaats van de versie van de bestemming te hergebruiken, in KeepSourceFormatting modus. AdjustSentenceAndWordSpacing (bool) past automatisch de spatiëring aan. AppendDocumentWithNewPage (bool) dwingt het type van de eerst geïmporteerde sectie tot NewPage.
Tips en best practices
- Maak één enkele
NodeImporter-instantie aan en hergebruik deze in een lus vanImportNode-aanroepen bij het importeren van veel knooppunten — het construeren van een nieuwe importer per knooppunt herhaalt onnodig de configuratiewerkzaamheden. - Geef een
ImportFormatOptions-instantie door aan deNodeImporter-constructoroverload wanneer de eenvoudigeImportFormatMode-keuze niet precies genoeg is — bijvoorbeeld om de nummering van de bronlijst te behouden metKeepSourceNumberingterwijl je nog steedsKeepSourceFormattingin het algemeen gebruikt. - Stel
IgnoreTextBoxesofIgnoreHeaderFooterin wanneerKeepSourceFormattingmeer bronopmaak binnenhaalt dan je wilt voor alleen die inhoudstypen. NodeImporter.ImportNode(srcNode, isImportChildren)weerspiegelt de importaanroep op documentniveau in handtekening en gedrag; het verschil ligt in hergebruikefficiëntie, niet in importsemantiek.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Herhaalde import van veel nodes is traag | Er wordt per node een gemakkelijke importaanroep gebruikt in plaats van één hergebruikt NodeImporter | Construeer één NodeImporter en roep ImportNode erop aan voor elke node |
| Lijstnummering wordt onverwacht gereset na import | ImportFormatOptions.KeepSourceNumbering was niet ingesteld | Construeer NodeImporter met een ImportFormatOptions instantie die KeepSourceNumbering naar behoefte instelt |
| Tekstvak of header/footer-inhoud neemt ongewenste bronopmaak over | KeepSourceFormatting modus past bronstijlen standaard breed toe | Stel IgnoreTextBoxes of IgnoreHeaderFooter in op de ImportFormatOptions die aan NodeImporter wordt doorgegeven |
FAQ
Wanneer moet ik NodeImporter gebruiken in plaats van een enkele importaanroep?
Bij het importeren van veel knooppunten in een lus — maak één NodeImporter van tevoren aan en roep ImportNode herhaaldelijk aan, in plaats van bij elke aanroep de opzetkosten te betalen.
Wat voegt ImportFormatOptions toe bovenop ImportFormatMode?
Fijnere schakelaars zoals SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing en AppendDocumentWithNewPage, bovenop de basiskeuze ImportFormatMode.
Gedraagt NodeImporter.ImportNode zich anders dan importeren op documentniveau?
Nee — beide nemen een bronknooppunt en een isImportChildren vlag en importeren het in het doeldocument; NodeImporter bestaat zodat de configuratie één keer wordt gedaan en vervolgens hergebruikt wordt bij vele oproepen.
Hoe houd ik de lijstnummering van het brondocument intact bij het importeren?
Construeer NodeImporter met een ImportFormatOptions waarbij KeepSourceNumbering true is.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
NodeImporter | Voert herhaalde import van knooppunten van het ene document naar het andere uit, waarbij de configuratie tussen oproepen wordt hergebruikt |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Constructor voor basis import-format-mode-only imports |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | Constructor die fijnmazige ImportFormatOptions accepteert |
NodeImporter.ImportNode(srcNode, isImportChildren) | Importeert een node van het brondocument naar het bestemmingsdocument |
ImportFormatOptions | Fijnmazige importinstellingen, gelaagd bovenop ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Hoe gelijkgenoemde stijlen worden geïmporteerd |
ImportFormatOptions.KeepSourceNumbering | Hoe conflicterende nummering wordt geïmporteerd |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Onderdrukt bronopmaak voor tekstvakken / kop- en voetteksten onder KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Voegt geplakte lijsten samen met omliggende lijsten |
ImportFormatOptions.ForceCopyStyles | Kopieert conflicterende stijlen in plaats van de versie van de bestemming te hergebruiken |
ImportFormatOptions.AppendDocumentWithNewPage | Forceert het type van de eerste geïmporteerde sectie naar NewPage |