Importazione di nodi con NodeImporter
Importazione di nodi con NodeImporter
Questa guida mostra come spostare contenuti tra due diversi Document istanze in Aspose.Words FOSS per .NET utilizzando la dedicata NodeImporter classe e con granularità fine ImportFormatOptions, per scenari in cui è necessario importare molti nodi in modo efficiente o controllare il comportamento dell’importazione oltre il livello base ImportFormatMode scelta. Per le più semplici Document.ImportNode, Document.AppendDocument, e DocumentBuilder.InsertDocument metodi di comodità, vedi il Lavorare con i Documenti guida.
NodeImporter: Importazioni ripetute senza configurazione ripetuta
NodeImporter è progettato per l’importazione ripetuta di nodi da un documento all’altro, evitando il costo di configurazione per ogni chiamata di un’importazione monouso. Costruiscine uno con new NodeImporter(srcDoc, dstDoc, importFormatMode) — o la sovraccarico new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) per un controllo più fine — una sola volta, quindi chiama ImportNode(srcNode, isImportChildren) su quella stessa istanza per ogni nodo che devi trasferire. Riutilizzare una singola istanza di NodeImporter in molte chiamate evita il costo di configurazione che un’importazione di comodità per chiamata comporta ogni volta.
Controllo di importazione a livello fine con ImportFormatOptions
ImportFormatOptions integra la scelta di base ImportFormatMode ( UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) con interruttori più fini: SmartStyleBehavior (bool) controlla come vengono importati gli stili con nomi uguali nella sorgente e nella destinazione. KeepSourceNumbering (bool) controlla come viene importata la numerazione quando entra in conflitto tra sorgente e destinazione. IgnoreTextBoxes e IgnoreHeaderFooter (bool) sopprimono la formattazione della sorgente per i contenuti di caselle di testo e di intestazione/piè di pagina specificamente quando KeepSourceFormatting è attivo. MergePastedLists (bool) unisce le liste incollate con le liste circostanti invece di mantenerle separate. ForceCopyStyles (bool) copia gli stili in conflitto invece di riutilizzare la versione della destinazione, in modalità KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) regola automaticamente la spaziatura. AppendDocumentWithNewPage (bool) forza il tipo della prima sezione importata a NewPage.
Suggerimenti e migliori pratiche
- Crea un’unica istanza di
NodeImportere riutilizzala in un ciclo di chiamate aImportNodedurante l’importazione di molti nodi — creare un nuovo importatore per ogni nodo ripete inutilmente il lavoro di configurazione. - Passa un’istanza di
ImportFormatOptionsal sovraccarico del costruttoreNodeImporterquando la semplice sceltaImportFormatModenon è sufficientemente precisa — ad esempio, per mantenere la numerazione dell’elenco di origine conKeepSourceNumberingpur continuando a utilizzareKeepSourceFormattingcomplessivamente. - Imposta
IgnoreTextBoxesoIgnoreHeaderFooterquandoKeepSourceFormattingapplica più stilizzazione di origine di quella desiderata solo per quei tipi di contenuto. NodeImporter.ImportNode(srcNode, isImportChildren)rispecchia la chiamata di importazione a livello di documento nella firma e nel comportamento; la differenza è l’efficienza del riutilizzo, non la semantica dell’importazione.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| L’importazione ripetuta di molti nodi è lenta | Una chiamata di importazione comoda viene usata per ogni nodo invece di un unico NodeImporter riutilizzabile | Costruisci un unico NodeImporter e chiama ImportNode su di esso per ogni nodo |
| La numerazione della lista si resetta inaspettatamente dopo l’importazione | ImportFormatOptions.KeepSourceNumbering non è stato impostato | Costruisci NodeImporter con un’istanza ImportFormatOptions che imposta KeepSourceNumbering secondo necessità |
| Textbox o contenuto dell’intestazione/piè di pagina acquisisce una formattazione di origine indesiderata | KeepSourceFormatting modalità applica lo stile di origine in modo ampio per impostazione predefinita | Imposta IgnoreTextBoxes o IgnoreHeaderFooter sul ImportFormatOptions passato a NodeImporter |
FAQ
Quando dovrei usare NodeImporter invece di una singola chiamata di importazione?
Durante l’importazione di molti nodi in un ciclo — crea un NodeImporter una sola volta e chiama ImportNode ripetutamente, invece di sostenere il costo di configurazione a ogni chiamata.
Cosa aggiunge ImportFormatOptions oltre a ImportFormatMode?
Interruttori più fini come SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing e AppendDocumentWithNewPage, stratificati sopra la scelta di base ImportFormatMode.
Il NodeImporter.ImportNode si comporta diversamente rispetto all’importazione a livello di documento?
No — entrambi accettano un nodo sorgente e un flag isImportChildren e lo importano nel documento di destinazione; NodeImporter esiste affinché la configurazione venga eseguita una sola volta e riutilizzata in molte chiamate.
Come posso mantenere intatta la numerazione delle liste del documento sorgente durante l’importazione?
Costruisci NodeImporter con un ImportFormatOptions dove KeepSourceNumbering è true.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
NodeImporter | Esegue importazioni ripetute di nodi da un documento all’altro, riutilizzando la configurazione tra le chiamate |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Costruttore per importazioni di base solo in modalità import-format-mode-only |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | Costruttore che accetta ImportFormatOptions a granularità fine |
NodeImporter.ImportNode(srcNode, isImportChildren) | Importa un nodo dal documento sorgente nel documento di destinazione |
ImportFormatOptions | Impostazioni di importazione a granularità fine sovrapposte a ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Come vengono importati gli stili con lo stesso nome |
ImportFormatOptions.KeepSourceNumbering | Come viene importata la numerazione in conflitto |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Sopprime la formattazione di origine per caselle di testo / intestazioni-piedi sotto KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Unisce le liste incollate con le liste circostanti |
ImportFormatOptions.ForceCopyStyles | Copia gli stili in conflitto invece di riutilizzare la versione della destinazione |
ImportFormatOptions.AppendDocumentWithNewPage | Forza il tipo della prima sezione importata a NewPage |