Importarea nodurilor cu NodeImporter

Importarea nodurilor cu NodeImporter

Importarea nodurilor cu NodeImporter

Acest ghid arată cum să mutați conținutul între două diferite Document instanțe în Aspose.Words FOSS pentru .NET folosind cea dedicată NodeImporter clasă și detaliată ImportFormatOptions, pentru scenarii în care trebuie să importați multe noduri eficient sau să controlați comportamentul importului dincolo de cel de bază ImportFormatMode alegere. Pentru cele mai simple Document.ImportNode, Document.AppendDocument, și DocumentBuilder.InsertDocument metode convenabile, consultați Lucrul cu Documente ghid.


NodeImporter: Importuri repetate fără configurare repetată

NodeImporter este conceput pentru importuri repetate de noduri dintr-un document în altul, evitând costul de configurare la fiecare apel al unui import de unică folosință. Construiți-l cu new NodeImporter(srcDoc, dstDoc, importFormatMode) — sau suprasarcina new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) pentru un control mai fin — o singură dată, apoi apelați ImportNode(srcNode, isImportChildren) pe aceeași instanță pentru fiecare nod pe care doriți să îl transferați. Reutilizarea unei instanțe NodeImporter la multiple apeluri evită costul de configurare pe care îl implică un import de conveniență la fiecare apel.


Control granular al importului cu ImportFormatOptions

ImportFormatOptions completează alegerea de bază ImportFormatMode (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) cu comutatoare mai fine: SmartStyleBehavior (bool) controlează modul în care stilurile cu nume identice în sursă și destinație sunt importate. KeepSourceNumbering (bool) controlează modul în care numerotarea este importată când există conflicte între sursă și destinație. IgnoreTextBoxes și IgnoreHeaderFooter (bool) suprimă formatarea sursei pentru conținutul casetei de text și al antetului/piedei de pagină, în mod special când KeepSourceFormatting este activ. MergePastedLists (bool) îmbină listele inserate cu listele înconjurătoare în loc să le păstreze separate. ForceCopyStyles (bool) copiază stilurile în conflict în loc să reutilizeze versiunea destinației, în modul KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) ajustează automat spațierea. AppendDocumentWithNewPage (bool) forțează tipul primei secțiuni importate să fie NewPage.


Sfaturi și cele mai bune practici

  • Creează o singură instanță NodeImporter și reutilizeaz-o pe parcursul unui ciclu de apeluri ImportNode atunci când imporți multe noduri — construirea unui nou importator pentru fiecare nod repetă inutil munca de configurare.
  • Transmite o instanță ImportFormatOptions la suprasarcina constructorului NodeImporter când alegerea simplă ImportFormatMode nu este suficient de precisă — de exemplu, pentru a păstra numerotarea listei sursă cu KeepSourceNumbering în timp ce totuși folosești KeepSourceFormatting în ansamblu.
  • Setează IgnoreTextBoxes sau IgnoreHeaderFooter când KeepSourceFormatting aduce mai mult stil sursă decât dorești pentru acele tipuri de conținut.
  • NodeImporter.ImportNode(srcNode, isImportChildren) reflectă apelul de import la nivel de document în semnătură și comportament; diferența este eficiența reutilizării, nu semantica importului.

Probleme comune

ProblemăCauzăRemediere
Importurile repetate ale multor noduri sunt lenteSe folosește un apel de import convenabil pentru fiecare nod în loc de unul reutilizat NodeImporterConstruiește un singur NodeImporter și apelează ImportNode pe el pentru fiecare nod
Numerotarea listei se resetează neașteptat după importImportFormatOptions.KeepSourceNumbering nu a fost setatConstruiți NodeImporter cu o instanță ImportFormatOptions care setează KeepSourceNumbering după cum este necesar
Conținutul casetei de text sau al antetului/subsolului preia formatarea nedorită a surseiModul KeepSourceFormatting aplică stilul sursei pe scară largă în mod implicitSetați IgnoreTextBoxes sau IgnoreHeaderFooter pe ImportFormatOptions transmis către NodeImporter

FAQ

Când ar trebui să folosesc NodeImporter în locul unui singur apel de import?

Când imporți multe noduri într-un ciclu — construiește un NodeImporter în avans și apelează ImportNode în mod repetat, în loc să plătești costul de configurare la fiecare apel.

Ce adaugă ImportFormatOptions dincolo de ImportFormatMode?

Comutatoare mai fine, cum ar fi SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing și AppendDocumentWithNewPage, suprapuse peste alegerea de bază ImportFormatMode.

Se comportă NodeImporter.ImportNode diferit față de importul la nivel de document?

Nu — ambele iau un nod sursă și un flag isImportChildren și îl importă în documentul de destinație; NodeImporter există pentru ca configurarea să fie făcută o singură dată și reutilizată în multe apeluri.

Cum pot păstra numerotarea listelor din documentul sursă intactă la import?

Construiește NodeImporter cu un ImportFormatOptions în care KeepSourceNumbering este true.


API Reference Rezumat

Clasă/MetodăDescriere:
NodeImporterEfectuează importuri repetate de noduri dintr-un document în altul, reutilizând configurarea între apeluri
NodeImporter(srcDoc, dstDoc, importFormatMode)Constructor pentru importuri de bază în modul import-format-mode-only
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions)Constructor care acceptă ImportFormatOptions granular
NodeImporter.ImportNode(srcNode, isImportChildren)Importă un nod din documentul sursă în documentul destinație
ImportFormatOptionsSetări de import granular suprapuse peste ImportFormatMode
ImportFormatOptions.SmartStyleBehaviorCum sunt importate stilurile cu același nume
ImportFormatOptions.KeepSourceNumberingCum este importată numerotarea în conflict
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooterSuprimă formatarea sursă pentru casetele de text / antete-subsoluri sub KeepSourceFormatting
ImportFormatOptions.MergePastedListsÎmbină listele lipite cu listele înconjurătoare
ImportFormatOptions.ForceCopyStylesCopiază stilurile în conflict în loc să reutilizeze versiunea destinației
ImportFormatOptions.AppendDocumentWithNewPageForțează tipul primei secțiuni importate la NewPage

Vezi și:

 Română