Importation de nœuds avec NodeImporter
Importation de nœuds avec NodeImporter
Ce guide montre comment déplacer du contenu entre deux différents Document instances dans Aspose.Words FOSS pour .NET en utilisant le dédié NodeImporter classe et granulaire ImportFormatOptions, pour les scénarios où vous devez importer de nombreux nœuds efficacement ou contrôler le comportement d’importation au-delà du ImportFormatMode choix. Pour les plus simples Document.ImportNode, Document.AppendDocument, et DocumentBuilder.InsertDocument méthodes pratiques, consultez le Travail avec les documents guide.
NodeImporter : Importations répétées sans configuration répétée
NodeImporter est conçu pour l’importation répétée de nœuds d’un document à un autre, évitant le coût de configuration à chaque appel d’une importation à usage unique. Créez-en un avec new NodeImporter(srcDoc, dstDoc, importFormatMode) — ou la surcharge new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) pour un contrôle plus fin — une seule fois, puis appelez ImportNode(srcNode, isImportChildren) sur cette même instance pour chaque nœud que vous devez transférer. Réutiliser une instance NodeImporter sur de nombreux appels évite le coût de configuration qu’une importation de commodité à chaque appel impose à chaque fois.
Contrôle d’importation granulaire avec ImportFormatOptions
ImportFormatOptions complète le choix de base ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) avec des commutateurs plus fins: SmartStyleBehavior (bool) contrôle la façon dont les styles portant le même nom dans la source et la destination sont importés. KeepSourceNumbering (bool) contrôle la façon dont la numérotation est importée lorsqu’elle entre en conflit entre la source et la destination. IgnoreTextBoxes et IgnoreHeaderFooter (bool) suppriment le formatage source pour le contenu des zones de texte et des en-têtes/pied de page spécifiquement lorsque KeepSourceFormatting est en vigueur. MergePastedLists (bool) fusionne les listes collées avec les listes environnantes au lieu de les garder séparées. ForceCopyStyles (bool) copie les styles conflictuels au lieu de réutiliser la version de la destination, en mode KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) ajuste automatiquement l’espacement. AppendDocumentWithNewPage (bool) force le type de la première section importée à NewPage.
Conseils et bonnes pratiques
- Créez une seule instance de
NodeImporteret réutilisez-la dans une boucle d’appelsImportNodelors de l’importation de nombreux nœuds — créer un nouvel importateur pour chaque nœud répète inutilement le travail de configuration. - Passez une instance de
ImportFormatOptionsau surchargé du constructeurNodeImporterlorsque le choix simpleImportFormatModen’est pas assez précis — par exemple, pour conserver la numérotation de la liste source avecKeepSourceNumberingtout en utilisant toujoursKeepSourceFormattingglobalement. - Définissez
IgnoreTextBoxesouIgnoreHeaderFooterlorsqueKeepSourceFormattingapplique plus de style source que vous ne le désirez pour ces types de contenu uniquement. NodeImporter.ImportNode(srcNode, isImportChildren)reflète l’appel d’importation au niveau du document en termes de signature et de comportement; la différence réside dans l’efficacité de la réutilisation, pas dans la sémantique d’importation.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
| Les importations répétées de nombreux nœuds sont lentes | Un appel d’importation pratique est utilisé pour chaque nœud au lieu d’un NodeImporter réutilisé | Construisez un seul NodeImporter et appelez ImportNode sur celui-ci pour chaque nœud |
| La numérotation de la liste se réinitialise de manière inattendue après l’importation | ImportFormatOptions.KeepSourceNumbering n’était pas défini | Construisez NodeImporter avec une instance ImportFormatOptions qui définit KeepSourceNumbering selon les besoins |
| Le contenu de la zone de texte ou de l’en-tête/pied de page reprend une mise en forme source indésirable | Le mode KeepSourceFormatting applique le style source de façon large par défaut | Définissez IgnoreTextBoxes ou IgnoreHeaderFooter sur le ImportFormatOptions transmis à NodeImporter |
FAQ
Quand devrais-je utiliser NodeImporter plutôt qu’un appel d’importation unique?
Lors de l’importation de nombreux nœuds dans une boucle — créez une seule NodeImporter au départ et appelez ImportNode de façon répétée, plutôt que de supporter le coût d’installation à chaque appel.
Que ajoute ImportFormatOptions au-delà de ImportFormatMode?
Des commutateurs plus fins tels que SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing et AppendDocumentWithNewPage, superposés à la sélection de base ImportFormatMode.
Est-ce que NodeImporter.ImportNode se comporte différemment de l’importation au niveau du document?
Non — les deux prennent un nœud source et un drapeau isImportChildren et l’importent dans le document de destination; NodeImporter existe afin que la configuration soit effectuée une fois et réutilisée lors de nombreux appels.
Comment garder la numérotation des listes du document source intacte lors de l’importation?
Construisez NodeImporter avec un ImportFormatOptions où KeepSourceNumbering est true.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
NodeImporter | Effectue des importations répétées de nœuds d’un document à un autre, en réutilisant la configuration entre les appels |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Constructeur pour les importations de base en mode import-format-mode-only |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | Constructeur acceptant ImportFormatOptions granulaire |
NodeImporter.ImportNode(srcNode, isImportChildren) | Importe un nœud du document source dans le document de destination |
ImportFormatOptions | Paramètres d’importation à granularité fine superposés à ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Comment les styles de même nom sont importés |
ImportFormatOptions.KeepSourceNumbering | Comment la numérotation conflictuelle est importée |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Supprime le formatage source des zones de texte / en-têtes-pieds de page sous KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Fusionne les listes collées avec les listes environnantes |
ImportFormatOptions.ForceCopyStyles | Copie les styles conflictuels au lieu de réutiliser la version de destination |
ImportFormatOptions.AppendDocumentWithNewPage | Force le type de la première section importée à NewPage |