Importar nodos con NodeImporter

Importar nodos con NodeImporter

Importando nodos con NodeImporter

Esta guía muestra cómo mover contenido entre dos diferentes Document instancias en Aspose.Words FOSS para .NET usando la dedicada NodeImporter clase y de gran granularidad ImportFormatOptions, para escenarios donde necesita importar muchos nodos de manera eficiente o controlar el comportamiento de importación más allá de la básica ImportFormatMode elección. Para los más simples Document.ImportNode, Document.AppendDocument, y DocumentBuilder.InsertDocument métodos de conveniencia, consulte el Trabajando con Documentos guía.


NodeImporter: Importaciones repetidas sin configuración repetida

NodeImporter está diseñado para la importación repetida de nodos de un documento a otro, evitando el costo de configuración por cada llamada de una importación de uso único. Construya uno con new NodeImporter(srcDoc, dstDoc, importFormatMode) — o la sobrecarga new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) para un control más fino — una sola vez, y luego invoque ImportNode(srcNode, isImportChildren) en esa misma instancia para cada nodo que necesite trasladar. Reutilizar una instancia de NodeImporter en muchas llamadas evita el costo de configuración que una importación de conveniencia por llamada genera cada vez.


Control de importación de gran detalle con ImportFormatOptions

ImportFormatOptions complementa la opción básica ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) con interruptores más finos: SmartStyleBehavior (bool) controla cómo se importan los estilos con nombres idénticos en el origen y el destino. KeepSourceNumbering (bool) controla cómo se importa la numeración cuando hay conflicto entre origen y destino. IgnoreTextBoxes y IgnoreHeaderFooter (bool) suprimen el formato del origen para el contenido de cuadros de texto y de encabezado/pie de página específicamente cuando KeepSourceFormatting está en vigor. MergePastedLists (bool) fusiona listas pegadas con listas adyacentes en lugar de mantenerlas separadas. ForceCopyStyles (bool) copia los estilos en conflicto en vez de reutilizar la versión del destino, en modo KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) ajusta automáticamente el espaciado. AppendDocumentWithNewPage (bool) obliga al tipo de la primera sección importada a NewPage.


Consejos y mejores prácticas

  • Crea una única instancia de NodeImporter y reutilízala en un bucle de llamadas a ImportNode al importar muchos nodos — crear un nuevo importador por nodo repite innecesariamente el trabajo de configuración.
  • Pasa una instancia de ImportFormatOptions a la sobrecarga del constructor NodeImporter cuando la opción simple ImportFormatMode no es lo suficientemente precisa — por ejemplo, para mantener la numeración de la lista de origen con KeepSourceNumbering mientras sigues usando KeepSourceFormatting en general.
  • Configura IgnoreTextBoxes o IgnoreHeaderFooter cuando KeepSourceFormatting incorpora más estilo de origen del que deseas para esos tipos de contenido.
  • NodeImporter.ImportNode(srcNode, isImportChildren) replica la llamada de importación a nivel de documento en firma y comportamiento; la diferencia está en la eficiencia de reutilización, no en la semántica de importación.

Problemas comunes

ProblemaCausaCorrección
Importaciones repetidas de muchos nodos son lentasSe utiliza una llamada de importación de conveniencia por nodo en lugar de una reutilizada NodeImporterConstruye un único NodeImporter y llama a ImportNode sobre él para cada nodo
La numeración de la lista se restablece inesperadamente después de la importaciónImportFormatOptions.KeepSourceNumbering no se establecióConstruya NodeImporter con una instancia de ImportFormatOptions que establezca KeepSourceNumbering según sea necesario
El contenido del cuadro de texto o del encabezado/pie de página adopta el formato de origen no deseadoEl modo KeepSourceFormatting aplica el estilo de origen de forma amplia por defectoEstablezca IgnoreTextBoxes o IgnoreHeaderFooter en el ImportFormatOptions que se pasa a NodeImporter

FAQ

¿Cuándo debo usar NodeImporter en vez de una única llamada de importación?

Al importar muchos nodos en un bucle — crea un NodeImporter al inicio y llama a ImportNode repetidamente, en vez de incurrir en el coste de configuración en cada llamada.

¿Qué agrega ImportFormatOptions más allá de ImportFormatMode?

Interruptores más finos, como SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing y AppendDocumentWithNewPage, superpuestos a la opción base ImportFormatMode.

¿Se comporta NodeImporter.ImportNode de manera diferente a la importación a nivel de documento?

No — ambos toman un nodo fuente y una bandera isImportChildren y lo importan al documento de destino; NodeImporter existe para que la configuración se realice una sola vez y se reutilice en muchas llamadas.

¿Cómo mantengo intacta la numeración de listas del documento fuente al importarlo?

Construye NodeImporter con un ImportFormatOptions donde KeepSourceNumbering sea true.


API Reference Resumen

Clase/MétodoDescripción
NodeImporterRealiza importaciones repetidas de nodos de un documento a otro, reutilizando la configuración entre llamadas
NodeImporter(srcDoc, dstDoc, importFormatMode)Constructor para importaciones básicas exclusivamente en modo de formato de importación
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Constructor que acepta ImportFormatOptions de gran precisión
NodeImporter.ImportNode(srcNode, isImportChildren)Importa un nodo del documento origen al documento destino
ImportFormatOptionsConfiguraciones de importación granulares superpuestas sobre ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorCómo se importan los estilos con nombres idénticos
ImportFormatOptions.KeepSourceNumberingCómo se importa la numeración en conflicto
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterSuprime el formato de origen para cuadros de texto / encabezados-pies de página bajo KeepSourceFormatting
ImportFormatOptions.MergePastedListsFusiona listas pegadas con listas circundantes
ImportFormatOptions.ForceCopyStylesCopia estilos conflictivos en vez de reutilizar la versión del destino
ImportFormatOptions.AppendDocumentWithNewPageForza el tipo de la primera sección importada a NewPage

Ver también

 Español