Yer İşaretli Metni Word Belgesine Kopyala

Bu makalede, Aspose.Words for .NET kütüphanesinde Yer İşaretli Metni Kopyala fonksiyonunun nasıl kullanılacağını anlamak için yukarıdaki C# kaynak kodunu inceleyeceğiz. Bu özellik, belirli bir yer iminin içeriğini kaynak belgeden başka bir belgeye kopyalamanıza olanak tanır.

Önkoşullar

  • C# dili hakkında temel bilgi.
  • Aspose.Words kütüphanesinin kurulu olduğu .NET geliştirme ortamı.

Adım 1: Kaynak Belgeyi Yükleme

Yer imi metnini kopyalamadan önce kaynak belgeyi birDocument dosya yolunu kullanan nesne:

string dataDir = "YOUR DOCUMENT DIRECTORY";
Document srcDoc = new Document(dataDir + "Bookmarks.docx");

2. Adım: Kaynak yer işaretini alma

biz kullanıyoruzBookmarks kopyalamak istediğimiz belirli yer imini almak için kaynak belge aralığının özelliği:

Bookmark srcBookmark = srcDoc.Range.Bookmarks["MyBookmark1"];

3. Adım: Hedef belgeyi oluşturma

Yer imi içeriğini kopyalamak için hedef belge görevi görecek yeni bir belge oluşturuyoruz:

Document dstDoc = new Document();

Adım 4: Kopyalama Konumunu Belirleme

Kopyalanan metni eklemek istediğimiz konumu belirtiyoruz. Örneğimizde metni, hedef belgenin son bölümünün gövdesinin sonuna ekliyoruz:

CompositeNode dstNode = dstDoc.LastSection.Body;

5. Adım: Yer imi metnini içe aktarın ve kopyalayın

Bir kullanıyoruzNodeImporterYer imi metnini kaynak belgeden hedef belgeye aktarmak ve kopyalamak için kullanılan nesne:

NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

AppendBookmarkedText(import, srcBookmark, dstNode);

dstDoc.Save(dataDir + "WorkingWithBookmarks.CopyBookmarkedText.docx");

Aspose.Words for .NET kullanarak Yer İşaretli Metni Kopyalamak için örnek kaynak kodu

Aspose.Words for .NET kullanarak bir yer iminden metin kopyalamayı gösteren örnek kaynak kodunun tamamını burada bulabilirsiniz:


	// Belgeler dizininin yolu.
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document srcDoc = new Document(dataDir + "Bookmarks.docx");

	// Bu, içeriğini kopyalamak istediğimiz yer imidir.
	Bookmark srcBookmark = srcDoc.Range.Bookmarks["MyBookmark1"];

	// Bu belgeye ekleme yapacağız.
	Document dstDoc = new Document();

	// Diyelim ki son bölümün gövdesinin sonuna ekleneceğiz.
	CompositeNode dstNode = dstDoc.LastSection.Body;

	// Tek bir bağlam olmadan birden çok kez içe aktarırsanız, birçok stilin oluşturulmasına neden olur.
	NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

	AppendBookmarkedText(importer, srcBookmark, dstNode);
	
	dstDoc.Save(dataDir + "WorkingWithBookmarks.CopyBookmarkedText.docx");

EkleYer İşaretli Metin Kaynak Kodu


private void AppendBookmarkedText(NodeImporter importer, Bookmark srcBookmark, CompositeNode dstNode)
        {
            // Bu, yer iminin başlangıcını içeren paragraftır.
            Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;

            // Bu, yer iminin sonunu içeren paragraftır.
            Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;

            if (startPara == null || endPara == null)
                throw new InvalidOperationException(
                    "Parent of the bookmark start or end is not a paragraph, cannot handle this scenario yet.");

            // Kendimizi oldukça basit bir senaryoyla sınırlayalım.
            if (startPara.ParentNode != endPara.ParentNode)
                throw new InvalidOperationException(
                    "Start and end paragraphs have different parents, cannot handle this scenario yet.");

            // Tüm paragrafları başlangıç paragrafından bitiş paragrafına kadar (ve dahil) kopyalamak istiyoruz,
            // dolayısıyla duracağımız düğüm son paragraftan sonraki düğümdür.
            Node endNode = endPara.NextSibling;

            for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
            {
                //Bu, mevcut düğümün bir kopyasını oluşturur ve onu bağlamda içe aktarır (geçerli kılar)
                // hedef belgenin. İçe aktarma, stilleri ve liste tanımlayıcılarını doğru şekilde ayarlamak anlamına gelir.
                Node newNode = importer.ImportNode(curNode, true);

                dstNode.AppendChild(newNode);
            }
        }

Çözüm

Bu makalede, Aspose.Words for .NET’ten Yer İşaretli Metni Kopyala fonksiyonunun nasıl kullanılacağını anlamak için C# kaynak kodunu inceledik. Bir yer iminin içeriğini kaynak belgeden başka bir belgeye kopyalamak için adım adım bir kılavuz izledik.

Yer imlerine eklenen metni word belgesine kopyalamaya ilişkin SSS

S: Aspose.Words for .NET’te “Metni yer imleriyle kopyala” özelliğini kullanmak için gereksinimler nelerdir?

C: Aspose.Words for .NET’teki “Metni yer işaretleriyle kopyala” özelliğini kullanmak için temel C# dili bilgisine sahip olmanız gerekir. Ayrıca Aspose.Words kütüphanesinin kurulu olduğu bir .NET geliştirme ortamına da ihtiyacınız var.

S: Kaynak belgeyi Aspose.Words for .NET’e nasıl yüklerim?

C: Aspose.Words for .NET’e kaynak belge yüklemek içinDocument belgenin dosya yolunu belirterek sınıf. İşte örnek bir kod:

Document srcDoc = new Document("path/to/your/document.docx");

S: Aspose.Words for .NET kullanarak kaynak belgedeki belirli bir yer iminin içeriğine nasıl ulaşılır?

C: Aspose.Words for .NET’i kullanarak kaynak belgedeki belirli bir yer iminin içeriğini almak için şuraya erişebilirsiniz:Bookmarks kaynak belge aralığının özelliğini kullanın ve belirli bir yer imini almak için yer imi adını kullanın. İşte örnek bir kod:

Bookmark srcBookmark = srcDoc.Range.Bookmarks["BookmarkName"];

S: Aspose.Words for .NET kullanılarak hedef belgedeki yer imi metni kopyasının konumu nasıl belirlenir?

C: Aspose.Words for .NET kullanarak kopyalanan yer imi metnini hedef belgede nereye eklemek istediğinizi belirtmek için hedef belgenin son bölümünün gövdesine gidebilirsiniz. Şunu kullanabilirsiniz:LastSection son bölüme erişim özelliği veBody o bölümün gövdesine erişme özelliği. İşte örnek bir kod:

CompositeNode dstNode = dstDoc.LastSection.Body;

S: Aspose.Words for .NET kullanılarak yer imi metni kaynak belgeden hedef belgeye nasıl aktarılır ve kopyalanır?

C: Yer imi metnini Aspose.Words for .NET kullanarak kaynak belgeden hedef belgeye aktarmak ve kopyalamak için şu komutu kullanabilirsiniz:NodeImporter Kaynak belgeyi, hedef belgeyi ve saklanacak biçimlendirme modunu belirten sınıf. Daha sonra şunu kullanabilirsiniz:AppendBookmarkedText Yer imi metnini hedef belgeye ekleme yöntemini kullanın. İşte örnek bir kod:

NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);
AppendBookmarkedText(import, srcBookmark, dstNode);

S: Aspose.Words for .NET kullanarak yer imi metnini kopyaladıktan sonra hedef belge nasıl kaydedilir?

C: Aspose.Words for .NET’i kullanarak bir yer iminden metin kopyaladıktan sonra hedef belgeyi kaydetmek için,Save yöntemiDocument Hedef dosya yolunu belirten nesne. İşte örnek bir kod:

dstDoc.Save("path/to/your/destination-document.docx");