NodeImporter ile Düğümleri İçe Aktarma
Düğümleri NodeImporter ile İçe Aktarma
Bu rehber, iki farklı arasında içeriği nasıl taşıyacağınızı gösterir Document örnekleri Aspose.Words FOSS içinde .NET için, özel NodeImporter sınıf ve ince ayarlı ImportFormatOptions, birden çok düğümü verimli bir şekilde içe aktarmanız ya da temel dışındaki içe aktarma davranışını kontrol etmeniz gereken senaryolar için ImportFormatMode seçim. Daha basit Document.ImportNode, Document.AppendDocument, ve DocumentBuilder.InsertDocument kolaylık yöntemleri, bakınız Belgelerle Çalışma kılavuz.
NodeImporter: Tekrarlanan Kurulum Olmadan Tekrarlanan İçe Aktarmalar
NodeImporter, bir belgeden diğerine düğümlerin tekrarlı içe aktarımı için tasarlanmıştır ve tek seferlik içe aktarmanın her çağrıda yapılan kurulum maliyetinden kaçınır. Bir tanesini new NodeImporter(srcDoc, dstDoc, importFormatMode) ile — ya da daha ince kontrol için new NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) aşırı yüklemesiyle — bir kez oluşturun, ardından ihtiyacınız olan her düğüm için aynı örnek üzerinde ImportNode(srcNode, isImportChildren) çağırın. Bir NodeImporter örneğini birçok çağrıda yeniden kullanmak, her seferinde bir çağrı kolaylık içe aktarımının yarattığı kurulum maliyetini önler.
ImportFormatOptions ile Ayrıntılı İçe Aktarma Kontrolü
ImportFormatOptions, temel ImportFormatMode seçeneğini (UseDestinationStyles, KeepSourceFormatting, KeepDifferentStyles) daha ince anahtarlarla tamamlar: SmartStyleBehavior (bool) kaynak ve hedefte aynı ada sahip stillerin nasıl içe aktarılacağını kontrol eder. KeepSourceNumbering (bool) kaynak ve hedefte çakışma olduğunda numaralandırmanın nasıl içe aktarılacağını kontrol eder. IgnoreTextBoxes ve IgnoreHeaderFooter (bool), KeepSourceFormatting etkili olduğunda metin kutusu ve başlık/alt bilgi içeriği için kaynak biçimlendirmesini bastırır. MergePastedLists (bool) yapıştırılan listeleri ayrı tutmak yerine çevredeki listelerle birleştirir. ForceCopyStyles (bool), KeepSourceFormatting modunda hedefin sürümünü yeniden kullanmak yerine çakışan stilleri kopyalar. AdjustSentenceAndWordSpacing (bool) otomatik olarak boşlukları ayarlar. AppendDocumentWithNewPage (bool) ilk içe aktarılan bölümün tipini NewPage olarak zorlar.
İpuçları ve En İyi Uygulamalar
- Birçok düğüm içe aktarırken tek bir
NodeImporterörneği oluşturun veImportNodeçağrılarının bir döngüsü boyunca yeniden kullanın — her düğüm için yeni bir içe aktarıcı oluşturmak kurulum işini gereksiz yere tekrarlamaktadır. - Düz
ImportFormatModeseçeneği yeterince kesin olmadığında,ImportFormatOptionsörneğiniNodeImporteryapıcı aşırı yüklemesine geçirin — örneğin,KeepSourceNumberingile kaynak liste numaralandırmasını korurken yine de genel olarakKeepSourceFormattingkullanmak için. KeepSourceFormatting, yalnızca bu içerik türleri için istediğinizden daha fazla kaynak stilini çektiğindeIgnoreTextBoxesveyaIgnoreHeaderFooterayarlayın.NodeImporter.ImportNode(srcNode, isImportChildren), belge seviyesindeki içe aktarma çağrısını imza ve davranış açısından yansıtır; fark, içe aktarma anlamı değil, yeniden kullanım verimliliğidir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
| Birçok düğümün tekrarlanan içe aktarımları yavaştır | Her düğüm için bir kullanım kolaylığı içe aktarma çağrısı kullanılıyor, yeniden kullanılan tek NodeImporter yerine | Tek bir NodeImporter oluşturun ve her düğüm için üzerinde ImportNode çağırın |
| İçe aktarmadan sonra liste numaralandırması beklenmedik şekilde sıfırlanıyor | ImportFormatOptions.KeepSourceNumbering ayarlanmadı | NodeImporter‘ı, gerektiğinde KeepSourceNumbering‘yi ayarlayan bir ImportFormatOptions örneğiyle oluşturun |
| Metin kutusu veya üstbilgi/altbilgi içeriği istenmeyen kaynak biçimlendirmesini alır | KeepSourceFormatting modu, varsayılan olarak kaynak stilini geniş çapta uygular | IgnoreTextBoxes veya IgnoreHeaderFooter‘i NodeImporter‘a geçirilen ImportFormatOptions üzerinde ayarlayın |
FAQ
Tek bir içe aktarma çağrısı yerine NodeImporter ne zaman kullanmalıyım?
Bir döngüde birçok düğüm içe aktarırken — önceden bir NodeImporter oluşturun ve ImportNode‘i tekrarlı olarak çağırın, her çağrıda kurulum maliyetini ödemek yerine.
ImportFormatOptions, ImportFormatMode üzerine ne ekliyor?
Daha ince anahtarlar, örneğin SmartStyleBehavior, KeepSourceNumbering, IgnoreTextBoxes, IgnoreHeaderFooter, MergePastedLists, ForceCopyStyles, AdjustSentenceAndWordSpacing ve AppendDocumentWithNewPage, temel ImportFormatMode seçiminin üzerine katmanlanır.
NodeImporter.ImportNode, belge seviyesinde içe aktarmaktan farklı davranıyor mu?
Hayır — ikisi de bir kaynak düğüm ve bir isImportChildren bayrağı alır ve hedef belgeye içe aktarır; NodeImporter ise ayarın bir kez yapılmasını ve birçok çağrıda yeniden kullanılmasını sağlar.
İçe aktarma sırasında kaynak belgenin liste numaralandırmasını nasıl bozulmadan korurum?
KeepSourceNumbering true olduğunda bir ImportFormatOptions ile NodeImporter oluşturun.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
NodeImporter | Bir belgeden diğerine düğümlerin tekrarlanan içe aktarımını gerçekleştirir, kurulumları çağrılar arasında yeniden kullanır |
NodeImporter(srcDoc, dstDoc, importFormatMode) | Temel içe-aktarma-format-modu-yalnızca içe aktarmalar için yapıcı |
NodeImporter(srcDoc, dstDoc, importFormatMode, importFormatOptions) | İnce taneli ImportFormatOptions kabul eden yapıcı |
NodeImporter.ImportNode(srcNode, isImportChildren) | Bir düğümü kaynak belgeden hedef belgeye içe aktarır |
ImportFormatOptions | İnce taneli içe aktarma ayarları ImportFormatMode üzerine katmanlanır |
ImportFormatOptions.SmartStyleBehavior | Aynı adlı stiller nasıl içe aktarılır |
ImportFormatOptions.KeepSourceNumbering | Çakışan numaralandırma nasıl içe aktarılır |
ImportFormatOptions.IgnoreTextBoxes / IgnoreHeaderFooter | KeepSourceFormatting altında metin kutuları / başlık-altbilgiler için kaynak biçimlendirmesini bastırır |
ImportFormatOptions.MergePastedLists | Yapıştırılan listeleri çevreleyen listelerle birleştirir |
ImportFormatOptions.ForceCopyStyles | Çakışan stilleri, hedefin sürümünü yeniden kullanmak yerine kopyalar |
ImportFormatOptions.AppendDocumentWithNewPage | İlk içe aktarılan bölümün türünü NewPage olarak zorlar |