Könyvjelzővel ellátott szöveg másolása Word dokumentumba

Ebben a cikkben megvizsgáljuk a fenti C# forráskódot, hogy megértsük, hogyan használhatjuk a Könyvjelzővel ellátott szöveg másolása funkciót az Aspose.Words for .NET könyvtárban. Ez a funkció lehetővé teszi egy adott könyvjelző tartalmának átmásolását egy forrásdokumentumból egy másik dokumentumba.

Előfeltételek

  • C# nyelv alapismerete.
  • .NET fejlesztői környezet telepített Aspose.Words könyvtárral.

1. lépés: Forrásdokumentum betöltése

A könyvjelző szövegének másolása előtt be kell töltenünk a forrásdokumentumot aDocument objektum a fájl elérési útját használva:

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

2. lépés: Forrás könyvjelző lekérése

Használjuk aBookmarks a forrásdokumentum tartomány tulajdonsága, hogy megkapjuk a másolni kívánt könyvjelzőt:

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

3. lépés: A céldokumentum létrehozása

Létrehozunk egy új dokumentumot, amely céldokumentumként fog szolgálni a könyvjelző tartalmának másolásához:

Document dstDoc = new Document();

4. lépés: A másolás helyének megadása

Megadjuk azt a helyet, ahová a másolt szöveget hozzá szeretnénk adni. Példánkban a szöveget hozzáadjuk a céldokumentum utolsó szakaszának törzsének végéhez:

CompositeNode dstNode = dstDoc.LastSection.Body;

5. lépés: Importálja és másolja a könyvjelző szövegét

Használjuk aNodeImporterobjektum a könyvjelző szövegének importálásához és másolásához a forrásdokumentumból a céldokumentumba:

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

AppendBookmarkedText(import, srcBookmark, dstNode);

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

Példa forráskódra a könyvjelzővel ellátott szöveg másolásához az Aspose.Words segítségével .NET-hez

Íme a teljes példaforráskód a könyvjelzők szövegének másolásának bemutatására az Aspose.Words for .NET használatával:


	// A dokumentumok könyvtárának elérési útja.
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document srcDoc = new Document(dataDir + "Bookmarks.docx");

	// Ez az a könyvjelző, amelynek tartalmát másolni szeretnénk.
	Bookmark srcBookmark = srcDoc.Range.Bookmarks["MyBookmark1"];

	// Ezt a dokumentumot kiegészítjük.
	Document dstDoc = new Document();

	// Tegyük fel, hogy az utolsó szakasz törzsének végéhez leszünk hozzáfűzve.
	CompositeNode dstNode = dstDoc.LastSection.Body;

	// Ha többször importál egyetlen kontextus nélkül, akkor sok stílus jön létre.
	NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

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

AddBookmarkedText forráskód


private void AppendBookmarkedText(NodeImporter importer, Bookmark srcBookmark, CompositeNode dstNode)
        {
            // Ez az a bekezdés, amely a könyvjelző elejét tartalmazza.
            Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;

            // Ez az a bekezdés, amely a könyvjelző végét tartalmazza.
            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.");

            // Korlátozzuk magunkat egy meglehetősen egyszerű forgatókönyvre.
            if (startPara.ParentNode != endPara.ParentNode)
                throw new InvalidOperationException(
                    "Start and end paragraphs have different parents, cannot handle this scenario yet.");

            // Minden bekezdést át akarunk másolni a kezdő bekezdéstől a záró bekezdésig (beleértve),
            // ezért a csomópont, amelynél megállunk, egy a bekezdés végének után van.
            Node endNode = endPara.NextSibling;

            for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
            {
                //Ez létrehozza az aktuális csomópont másolatát, és importálja (érvényessé teszi) a kontextusba
                // a céldokumentumról. Az importálás a stílusok és a listaazonosítók helyes beállítását jelenti.
                Node newNode = importer.ImportNode(curNode, true);

                dstNode.AppendChild(newNode);
            }
        }

Következtetés

Ebben a cikkben megvizsgáltuk a C# forráskódot, hogy megértsük, hogyan kell használni a Könyvjelzővel ellátott szöveg másolása az Aspose.Words for .NET-ből funkciót. A könyvjelző tartalmának forrásdokumentumból egy másik dokumentumba való másolásához lépésről lépésre követtük.

GYIK a könyvjelzővel ellátott szöveg Word dokumentumba másolásához

K: Mik a követelmények az Aspose.Words for .NET “Szöveg másolása könyvjelzőkkel” funkció használatához?

V: Az Aspose.Words for .NET “Szöveg másolása könyvjelzőkkel” funkciójának használatához alapszintű C# nyelvtudással kell rendelkeznie. Szüksége van egy .NET fejlesztői környezetre is, amelyen az Aspose.Words könyvtár telepítve van.

K: Hogyan tölthetek be forrásdokumentumot az Aspose.Words for .NET-be?

V: Forrásdokumentum betöltéséhez az Aspose.Words for .NET-be aDocument osztályba a dokumentum fájl elérési útjának megadásával. Itt van egy minta kód:

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

K: Hogyan szerezhető be egy adott könyvjelző tartalma egy forrásdokumentumban az Aspose.Words for .NET használatával?

V: Egy adott könyvjelző tartalmának forrásdokumentumban való megjelenítéséhez az Aspose.Words for .NET használatával elérheti aBookmarks a forrásdokumentum tartomány tulajdonságát, és használja a könyvjelző nevét az adott könyvjelző lekéréséhez. Itt van egy minta kód:

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

K: Hogyan lehet megadni a könyvjelző szövegmásolatának helyét a céldokumentumban az Aspose.Words for .NET használatával?

V: Ha az Aspose.Words for .NET segítségével szeretné megadni, hogy hova kívánja hozzáadni a másolt könyvjelzőszöveget a céldokumentumban, navigáljon a céldokumentum utolsó szakaszához. Használhatja aLastSection tulajdonság eléréséhez az utolsó szakaszt és aBody tulajdonság eléréséhez az adott szakasz törzséhez. Itt van egy minta kód:

CompositeNode dstNode = dstDoc.LastSection.Body;

K: Hogyan importálhatunk és másolhatunk könyvjelző szöveget a forrásdokumentumból a céldokumentumba az Aspose.Words for .NET használatával?

V: A könyvjelzőszöveg forrásdokumentumból a céldokumentumba történő importálásához és másolásához az Aspose.Words for .NET használatával, használhatja aNodeImporter osztály, amely megadja a forrásdokumentumot, a céldokumentumot és a megtartandó formázási módot. Ezután használhatja aAppendBookmarkedText módszert a könyvjelzőszöveg hozzáadásához a céldokumentumhoz. Itt van egy minta kód:

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

K: Hogyan lehet elmenteni egy céldokumentumot a könyvjelzőszöveg Aspose.Words for .NET segítségével történő másolása után?

V: A céldokumentum mentéséhez, miután az Aspose.Words for .NET segítségével másolt szöveget egy könyvjelzőből, használja aSave módszere aDocument objektum, amely megadja a célfájl elérési útját. Itt van egy minta kód:

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