Importando nós com NodeImporter

Importando nós com NodeImporter

Importando nós com NodeImporter

Este guia mostra como mover conteúdo entre duas diferentes Document instâncias em Aspose.Words FOSS para .NET usando o dedicado NodeImporter classe e granular ImportFormatOptions, para cenários em que você precisa importar muitos nós de forma eficiente ou controlar o comportamento da importação além do básico ImportFormatMode escolha. Para os mais simples Document.ImportNode, Document.AppendDocument, e DocumentBuilder.InsertDocument métodos de conveniência, veja o Trabalhando com Documentos guia.


NodeImporter: Importações repetidas sem configuração repetida

NodeImporter foi desenvolvido para importação repetida de nós de um documento para outro, evitando o custo de configuração a cada chamada de uma importação de uso único. Construa um com new NodeImporter(srcDoc, dstDoc, importFormatMode) — ou a sobrecarga new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) para controle mais fino — uma única vez, então chame ImportNode(srcNode, isImportChildren) nessa mesma instância para cada nó que precisar transferir. Reutilizar uma instância de NodeImporter em várias chamadas evita o custo de configuração que uma importação de conveniência por chamada impõe a cada vez.


Controle de importação fino com ImportFormatOptions

O ImportFormatOptions complementa a escolha básica de ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) com interruptores mais finos: SmartStyleBehavior (bool) controla como estilos com nomes iguais na origem e no destino são importados. KeepSourceNumbering (bool) controla como a numeração é importada quando há conflito entre origem e destino. IgnoreTextBoxes e IgnoreHeaderFooter (bool) suprimem a formatação da origem para conteúdo de caixa de texto e cabeçalho/rodapé especificamente quando KeepSourceFormatting está em vigor. MergePastedLists (bool) mescla listas coladas com listas circundantes ao invés de mantê-las separadas. ForceCopyStyles (bool) copia estilos conflitantes ao invés de reutilizar a versão do destino, no modo KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) ajusta automaticamente o espaçamento. AppendDocumentWithNewPage (bool) força o tipo da primeira seção importada para NewPage.


Dicas e melhores práticas

  • Crie uma única instância de NodeImporter e reutilize-a em um loop de chamadas ImportNode ao importar muitos nós — construir um novo importador por nó repete o trabalho de configuração desnecessariamente.
  • Passe uma instância de ImportFormatOptions para a sobrecarga do construtor NodeImporter quando a escolha simples de ImportFormatMode não for precisa o suficiente — por exemplo, para manter a numeração da lista de origem com KeepSourceNumbering enquanto ainda usa KeepSourceFormatting no geral.
  • Defina IgnoreTextBoxes ou IgnoreHeaderFooter quando KeepSourceFormatting traz mais estilo de origem do que você deseja apenas para esses tipos de conteúdo.
  • NodeImporter.ImportNode(srcNode, isImportChildren) espelha a chamada de importação ao nível do documento em assinatura e comportamento; a diferença está na eficiência de reutilização, não na semântica da importação.

Problemas Comuns

ProblemaCausaCorreção
Importações repetidas de muitos nós são lentasUma chamada de importação conveniente é usada por nó em vez de uma NodeImporter reutilizadaConstrua um único NodeImporter e chame ImportNode nele para cada nó
A numeração da lista reinicia inesperadamente após a importaçãoImportFormatOptions.KeepSourceNumbering não foi definidoConstrua NodeImporter com uma instância ImportFormatOptions que define KeepSourceNumbering conforme necessário
O conteúdo da caixa de texto ou do cabeçalho/rodapé recebe a formatação indesejada da fonteO modo KeepSourceFormatting aplica o estilo da fonte amplamente por padrãoDefina IgnoreTextBoxes ou IgnoreHeaderFooter no ImportFormatOptions passado para NodeImporter

FAQ

Quando devo usar NodeImporter em vez de uma única chamada de importação?

Ao importar muitos nós em um loop — construa um NodeImporter inicialmente e chame ImportNode repetidamente, em vez de pagar o custo de configuração em cada chamada.

O que ImportFormatOptions adiciona além de ImportFormatMode?

Interruptores mais finos, como SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing e AppendDocumentWithNewPage, sobrepostos à escolha base ImportFormatMode.

O NodeImporter.ImportNode se comporta de forma diferente de importar ao nível do documento?

Não — ambos recebem um nó de origem e uma sinalização isImportChildren e o importam para o documento de destino; NodeImporter existe para que a configuração seja feita uma vez e reutilizada em várias chamadas.

Como mantenho a numeração da lista do documento de origem intacta ao importar?

Construa NodeImporter com um ImportFormatOptions onde KeepSourceNumbering é true.


API Reference Resumo

Classe/MétodoDescrição
NodeImporterExecuta importação repetida de nós de um documento para outro, reutilizando a configuração entre chamadas
NodeImporter(srcDoc, dstDoc, importFormatMode)Construtor para importações básicas apenas no modo de formato de importação
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Construtor que aceita ImportFormatOptions de granularidade fina
NodeImporter.ImportNode(srcNode, isImportChildren)Importa um nó do documento de origem para o documento de destino
ImportFormatOptionsConfigurações de importação granulares sobrepostas a ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorComo estilos com nomes iguais são importados
ImportFormatOptions.KeepSourceNumberingComo a numeração em conflito é importada
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterSuprime a formatação de origem para caixas de texto / cabeçalhos e rodapés sob KeepSourceFormatting
ImportFormatOptions.MergePastedListsMescla listas coladas com listas circundantes
ImportFormatOptions.ForceCopyStylesCopia estilos conflitantes em vez de reutilizar a versão de destino
ImportFormatOptions.AppendDocumentWithNewPageForça o tipo da primeira seção importada para NewPage

Ver também

 Português