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 apeluriImportNodeatunci când imporți multe noduri — construirea unui nou importator pentru fiecare nod repetă inutil munca de configurare. - Transmite o instanță
ImportFormatOptionsla suprasarcina constructoruluiNodeImportercând alegerea simplăImportFormatModenu este suficient de precisă — de exemplu, pentru a păstra numerotarea listei sursă cuKeepSourceNumberingîn timp ce totuși foloseștiKeepSourceFormattingîn ansamblu. - Setează
IgnoreTextBoxessauIgnoreHeaderFootercândKeepSourceFormattingaduce 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 lente | Se folosește un apel de import convenabil pentru fiecare nod în loc de unul reutilizat NodeImporter | Construiește un singur NodeImporter și apelează ImportNode pe el pentru fiecare nod |
| Numerotarea listei se resetează neașteptat după import | ImportFormatOptions.KeepSourceNumbering nu a fost setat | Construiț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 sursei | Modul KeepSourceFormatting aplică stilul sursei pe scară largă în mod implicit | Setaț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: |
|---|---|
NodeImporter | Efectuează 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 |
ImportFormatOptions | Setări de import granular suprapuse peste ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Cum sunt importate stilurile cu același nume |
ImportFormatOptions.KeepSourceNumbering | Cum este importată numerotarea în conflict |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Suprimă formatarea sursă pentru casetele de text / antete-subsoluri sub KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Îmbină listele lipite cu listele înconjurătoare |
ImportFormatOptions.ForceCopyStyles | Copiază stilurile în conflict în loc să reutilizeze versiunea destinației |
ImportFormatOptions.AppendDocumentWithNewPage | Forțează tipul primei secțiuni importate la NewPage |