Mengimpor Node dengan NodeImporter
Mengimpor Node dengan NodeImporter
Panduan ini menunjukkan cara memindahkan konten antara dua berbeda Document instansi di Aspose.Words FOSS untuk .NET menggunakan yang didedikasikan NodeImporter kelas dan terperinci ImportFormatOptions, untuk skenario di mana Anda perlu mengimpor banyak node secara efisien atau mengendalikan perilaku impor di luar yang dasar ImportFormatMode pilihan. Untuk yang lebih sederhana Document.ImportNode, Document.AppendDocument, dan DocumentBuilder.InsertDocument metode kemudahan, lihat Bekerja dengan Dokumen panduan.
NodeImporter: Impor Berulang Tanpa Penyiapan Berulang
NodeImporter dibangun untuk impor berulang node dari satu dokumen ke dokumen lain, menghindari biaya penyiapan per panggilan pada impor satu kali pakai. Buat satu dengan new NodeImporter(srcDoc, dstDoc, importFormatMode) — atau overload new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) untuk kontrol lebih halus — sekali, lalu panggil ImportNode(srcNode, isImportChildren) pada instance yang sama untuk setiap node yang perlu Anda bawa. Menggunakan kembali satu instance NodeImporter pada banyak panggilan menghindari biaya penyiapan yang ditimbulkan oleh impor kemudahan per panggilan setiap kali.
Kontrol Impor Terperinci dengan ImportFormatOptions
ImportFormatOptions melengkapi pilihan ImportFormatMode dasar (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) dengan saklar yang lebih halus: SmartStyleBehavior (bool) mengontrol bagaimana gaya dengan nama yang sama di sumber dan tujuan diimpor. KeepSourceNumbering (bool) mengontrol bagaimana penomoran diimpor ketika terjadi benturan antara sumber dan tujuan. IgnoreTextBoxes dan IgnoreHeaderFooter (bool) menekan pemformatan sumber untuk konten kotak teks serta header/footer secara khusus ketika KeepSourceFormatting berlaku. MergePastedLists (bool) menggabungkan daftar yang ditempel dengan daftar di sekitarnya alih-alih mempertahankannya terpisah. ForceCopyStyles (bool) menyalin gaya yang konflik alih-alih menggunakan kembali versi tujuan, dalam mode KeepSourceFormatting. AdjustSentenceAndWordSpacing (bool) secara otomatis menyesuaikan spasi. AppendDocumentWithNewPage (bool) memaksa tipe bagian pertama yang diimpor menjadi NewPage.
Tips dan Praktik Terbaik
- Buat satu instance
NodeImporterdan gunakan kembali di seluruh loop panggilanImportNodesaat mengimpor banyak node — membuat importer baru per node mengulangi pekerjaan penyiapan yang tidak perlu. - Berikan instance
ImportFormatOptionske overload konstruktorNodeImporterketika pilihanImportFormatModebiasa tidak cukup tepat — misalnya, untuk mempertahankan penomoran daftar sumber denganKeepSourceNumberingsambil tetap menggunakanKeepSourceFormattingsecara keseluruhan. - Atur
IgnoreTextBoxesatauIgnoreHeaderFooterketikaKeepSourceFormattingmengambil lebih banyak gaya sumber daripada yang Anda inginkan untuk tipe konten tersebut saja. NodeImporter.ImportNode(srcNode, isImportChildren)mencerminkan panggilan impor tingkat dokumen dalam tanda tangan dan perilaku; perbedaannya terletak pada efisiensi penggunaan kembali, bukan semantik impor.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| Impor berulang dari banyak node lambat | Panggilan impor praktis digunakan per node alih-alih satu NodeImporter yang dapat digunakan kembali | Buat satu NodeImporter dan panggil ImportNode padanya untuk setiap node |
| Penomoran daftar direset secara tak terduga setelah impor | ImportFormatOptions.KeepSourceNumbering tidak disetel | Buat NodeImporter dengan instance ImportFormatOptions yang mengatur KeepSourceNumbering sesuai kebutuhan |
| Konten kotak teks atau header/footer mengambil format sumber yang tidak diinginkan | Mode KeepSourceFormatting secara default menerapkan gaya sumber secara luas | Set IgnoreTextBoxes atau IgnoreHeaderFooter pada ImportFormatOptions yang diteruskan ke NodeImporter |
FAQ
Kapan saya harus menggunakan NodeImporter alih-alih panggilan impor tunggal?
Saat mengimpor banyak node dalam sebuah loop — buat satu NodeImporter di awal dan panggil ImportNode berulang kali, daripada membayar biaya penyiapan pada setiap panggilan.
Apa yang ImportFormatOptions tambahkan di luar ImportFormatMode?
Sakelar yang lebih halus seperti SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing, dan AppendDocumentWithNewPage, ditumpuk di atas pilihan dasar ImportFormatMode.
Apakah NodeImporter.ImportNode berperilaku berbeda dibandingkan mengimpor pada tingkat dokumen?
Tidak — keduanya menerima node sumber dan flag isImportChildren lalu mengimpornya ke dalam dokumen tujuan; NodeImporter ada agar penyiapan dilakukan sekali dan dapat digunakan kembali pada banyak pemanggilan.
Bagaimana cara saya menjaga penomoran daftar pada dokumen sumber tetap utuh saat mengimpor?
Bangun NodeImporter dengan ImportFormatOptions di mana KeepSourceNumbering adalah true.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
NodeImporter | Melakukan impor berulang node dari satu dokumen ke dokumen lain, menggunakan kembali pengaturan di antara pemanggilan |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Konstruktor untuk impor dasar hanya dalam mode format-impor |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | Konstruktor yang menerima ImportFormatOptions secara detail |
NodeImporter.ImportNode(srcNode, isImportChildren) | Mengimpor sebuah node dari dokumen sumber ke dokumen tujuan |
ImportFormatOptions | Pengaturan impor yang terperinci berlapis di atas ImportFormatMode |
ImportFormatOptions.SmartStyleBehavior | Bagaimana gaya yang bernama sama diimpor |
ImportFormatOptions.KeepSourceNumbering | Bagaimana penomoran yang berbenturan diimpor |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | Menekan pemformatan sumber untuk kotak teks / header-footer di bawah KeepSourceFormatting |
ImportFormatOptions.MergePastedLists | Menggabungkan daftar yang ditempel dengan daftar di sekitarnya |
ImportFormatOptions.ForceCopyStyles | Menyalin gaya yang bertentangan alih-alih menggunakan kembali versi tujuan |
ImportFormatOptions.AppendDocumentWithNewPage | Memaksa tipe bagian pertama yang diimpor menjadi NewPage |