Importieren von Knoten mit NodeImporter
Importieren von Knoten mit NodeImporter
Dieser Leitfaden zeigt, wie man Inhalte zwischen zwei verschiedenen Document Instanzen in Aspose.Words FOSS für .NET mithilfe der dedizierten NodeImporter Klasse und feinkörnige ImportFormatOptions, für Szenarien, in denen Sie viele Knoten effizient importieren oder das Importverhalten über das Grundlegende hinaus steuern müssen ImportFormatMode Auswahl. Für die einfacheren Document.ImportNode, Document.AppendDocument, und DocumentBuilder.InsertDocument Convenience-Methoden, siehe die Arbeiten mit Dokumenten Leitfaden.
NodeImporter: Wiederholte Importe ohne wiederholtes Setup
NodeImporter ist für wiederholte Importe von Knoten von einem Dokument zu einem anderen konzipiert und vermeidet die pro Aufruf anfallenden Einrichtungskosten eines Einmal-Imports. Erstellen Sie ein Objekt mit new NodeImporter(srcDoc, dstDoc, importFormatMode)— oder die Überladung new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) für feinere Kontrolle— einmalig und rufen Sie dann ImportNode(srcNode, isImportChildren) auf derselben Instanz für jeden Knoten auf, den Sie übertragen möchten. Die Wiederverwendung einer NodeImporter-Instanz über viele Aufrufe hinweg vermeidet die Einrichtungskosten, die ein pro Aufruf ausgeführter Convenience-Import jedes Mal verursacht.
Feinkörnige Importkontrolle mit ImportFormatOptions
ImportFormatOptions ergänzt die grundlegende ImportFormatMode-Auswahl (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) um feinere Schalter: SmartStyleBehavior (bool) steuert, wie Stile mit gleichen Namen in Quelle und Ziel importiert werden. KeepSourceNumbering (bool) regelt, wie Nummerierungen importiert werden, wenn sie zwischen Quelle und Ziel kollidieren. IgnoreTextBoxes und IgnoreHeaderFooter (bool) unterdrücken die Quellformatierung für Textfeld- und Kopf-/Fußzeilen-Inhalte speziell, wenn KeepSourceFormatting aktiv ist. MergePastedLists (bool) fügt eingefügte Listen mit angrenzenden Listen zusammen, anstatt sie getrennt zu lassen. ForceCopyStyles (bool) kopiert konfligierende Stile, anstatt die Version des Ziels zu verwenden, im KeepSourceFormatting-Modus. AdjustSentenceAndWordSpacing (bool) passt den Abstand automatisch an. AppendDocumentWithNewPage (bool) erzwingt, dass der Typ des zuerst importierten Abschnitts NewPage ist.
Tipps und bewährte Vorgehensweisen
- Erstellen Sie eine einzelne
NodeImporter-Instanz und verwenden Sie sie in einer Schleife vonImportNode-Aufrufen, wenn Sie viele Knoten importieren — das Erzeugen eines neuen Importers pro Knoten wiederholt die Einrichtung unnötig. - Übergeben Sie eine
ImportFormatOptions-Instanz an dieNodeImporter-Konstruktorüberladung, wenn die einfacheImportFormatMode-Auswahl nicht präzise genug ist — zum Beispiel, um die Nummerierung der Quellliste mitKeepSourceNumberingbeizubehalten, während Sie insgesamtKeepSourceFormattingverwenden. - Setzen Sie
IgnoreTextBoxesoderIgnoreHeaderFooter, wennKeepSourceFormattingmehr Quell-Styling einbringt, als Sie für genau diese Inhaltstypen wünschen. NodeImporter.ImportNode(srcNode, isImportChildren)spiegelt den dokumentenweiten Importaufruf in Signatur und Verhalten wider; der Unterschied liegt in der Wiederverwendungseffizienz, nicht in den Importsemantiken.
Häufige Probleme
| Problem | Ursache | Behebung |
|---|---|---|
| Wiederholte Importe vieler Knoten sind langsam | Ein Komfort-Importaufruf wird pro Knoten verwendet, anstatt einen wiederverwendeten NodeImporter | Erstelle ein einzelnes NodeImporter und rufe ImportNode für jeden Knoten darauf auf |
| Die Listennummerierung wird nach dem Import unerwartet zurückgesetzt | ImportFormatOptions.KeepSourceNumbering wurde nicht gesetzt | Erstellen Sie NodeImporter mit einer ImportFormatOptions-Instanz, die KeepSourceNumbering bei Bedarf festlegt |
| Textbox- oder Kopf-/Fußzeileninhalt übernimmt unerwünschte Quellformatierung | KeepSourceFormatting-Modus wendet standardmäßig die Quellformatierung breit an | Setzen Sie IgnoreTextBoxes oder IgnoreHeaderFooter auf das ImportFormatOptions, das an NodeImporter übergeben wird |
FAQ
Wann sollte ich NodeImporter anstelle eines einzelnen Importaufrufs verwenden?
Beim Importieren vieler Knoten in einer Schleife — erstellen Sie zunächst ein NodeImporter und rufen Sie ImportNode wiederholt auf, anstatt bei jedem Aufruf die Einrichtungskosten zu zahlen.
Was fügt ImportFormatOptions über ImportFormatMode hinaus hinzu?
Feinere Schalter wie SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing und AppendDocumentWithNewPage, die über der Basiswahl ImportFormatMode geschichtet sind.
Verhält sich NodeImporter.ImportNode anders als das Importieren auf Dokumentebene?
Nein — beide nehmen einen Quellknoten und ein isImportChildren-Flag und importieren es in das Zieldokument; NodeImporter existiert, damit die Einrichtung einmal durchgeführt und bei vielen Aufrufen wiederverwendet wird.
Wie kann ich die Listennummerierung des Quelldokuments beim Import unverändert behalten?
Erstelle NodeImporter mit einem ImportFormatOptions, wobei KeepSourceNumbering true ist.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
NodeImporter | Führt wiederholte Importe von Knoten von einem Dokument in ein anderes durch und verwendet die Einrichtung über mehrere Aufrufe hinweg erneut |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Konstruktor für grundlegende Importe im reinen Import-Format-Modus |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | Konstruktor, der feinkörnige ImportFormatOptions akzeptiert |
NodeImporter.ImportNode(srcNode, isImportChildren) | Importiert einen Knoten aus dem Quelldokument in das Zieldokument |
ImportFormatOptions | Feinkörnige Import-Einstellungen, die auf ImportFormatMode aufgesetzt sind |
ImportFormatOptions.SmartStyleBehavior | Wie gleichnamige Stile importiert werden |
ImportFormatOptions.KeepSourceNumbering | Wie kollidierende Nummerierung importiert wird |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Unterdrückt die Quellformatierung für Textfelder / Kopf- und Fußzeilen unter KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Fügt eingefügte Listen mit den umgebenden Listen zusammen |
ImportFormatOptions.ForceCopyStyles | Kopiert konfliktierende Stile, anstatt die Version des Ziels wiederzuverwenden |
ImportFormatOptions.AppendDocumentWithNewPage | Erzwingt, dass der Typ des zuerst importierten Abschnitts NewPage ist |