Kopiera bokmärkt text i Word-dokument

den här artikeln kommer vi att utforska C#-källkoden ovan för att förstå hur man använder funktionen Kopiera bokmärkt text i Aspose.Words för .NET-biblioteket. Med den här funktionen kan du kopiera innehållet i ett specifikt bokmärke från ett källdokument till ett annat dokument.

Förutsättningar

  • Grundläggande kunskaper i C#-språket.
  • .NET-utvecklingsmiljö med Aspose.Words-biblioteket installerat.

Steg 1: Laddar källdokument

Innan vi kopierar bokmärkestexten måste vi ladda källdokumentet i enDocument objekt som använder filsökvägen:

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

Steg 2: Hämta källbokmärke

Vi använderBookmarks egenskapen för källdokumentintervallet för att få det specifika bokmärke vi vill kopiera:

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

Steg 3: Skapa måldokumentet

Vi skapar ett nytt dokument som kommer att fungera som måldokument för att kopiera bokmärkesinnehållet:

Document dstDoc = new Document();

Steg 4: Ange kopieringsplatsen

Vi anger platsen där vi vill lägga till den kopierade texten. I vårt exempel lägger vi till texten i slutet av brödtexten i den sista delen av måldokumentet:

CompositeNode dstNode = dstDoc.LastSection.Body;

Steg 5: Importera och kopiera bokmärkestext

Vi använder aNodeImporterobjekt för att importera och kopiera bokmärkestext från ett källdokument till måldokumentet:

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

AppendBookmarkedText(import, srcBookmark, dstNode);

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

Exempel på källkod för Kopiera bokmärkt text med Aspose.Words för .NET

Här är det fullständiga exemplet på källkoden för att demonstrera kopiering av text från ett bokmärke med Aspose.Words för .NET:


	// Sökvägen till dokumentkatalogen.
	string dataDir = "YOUR DOCUMENT DIRECTORY";
	Document srcDoc = new Document(dataDir + "Bookmarks.docx");

	// Det här är bokmärket vars innehåll vi vill kopiera.
	Bookmark srcBookmark = srcDoc.Range.Bookmarks["MyBookmark1"];

	// Vi kommer att lägga till detta dokument.
	Document dstDoc = new Document();

	// Låt oss säga att vi kommer att läggas till i slutet av brödtexten i det sista avsnittet.
	CompositeNode dstNode = dstDoc.LastSection.Body;

	// Om du importerar flera gånger utan ett enda sammanhang kommer det att resultera i många stilar som skapas.
	NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

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

AppendBookmarkedText källkod


private void AppendBookmarkedText(NodeImporter importer, Bookmark srcBookmark, CompositeNode dstNode)
        {
            // Detta är stycket som innehåller början av bokmärket.
            Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;

            // Detta är stycket som innehåller slutet av bokmärket.
            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.");

            // Begränsa oss till ett ganska enkelt scenario.
            if (startPara.ParentNode != endPara.ParentNode)
                throw new InvalidOperationException(
                    "Start and end paragraphs have different parents, cannot handle this scenario yet.");

            // Vi vill kopiera alla stycken från startstycket till (och inklusive) slutstycket,
            // därför är noden där vi stannar en efter slutstycket.
            Node endNode = endPara.NextSibling;

            for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
            {
                //Detta skapar en kopia av den aktuella noden och importerar den (gör den giltig) i sammanhanget
                // av destinationsdokumentet. Importering innebär att anpassa stilar och listidentifierare korrekt.
                Node newNode = importer.ImportNode(curNode, true);

                dstNode.AppendChild(newNode);
            }
        }

Slutsats

I den här artikeln utforskade vi C#-källkoden för att förstå hur man använder funktionen Kopiera bokmärkt text från Aspose.Words för .NET. Vi följde en steg-för-steg-guide för att kopiera innehållet i ett bokmärke från ett källdokument till ett annat dokument.

Vanliga frågor för kopiering av bokmärkt text i word-dokument

F: Vilka är kraven för att använda funktionen “Kopiera text med bokmärken” i Aspose.Words för .NET?

S: För att använda funktionen “Kopiera text med bokmärken” i Aspose.Words för .NET måste du ha grundläggande kunskaper i C#-språket. Du behöver också en .NET-utvecklingsmiljö med Aspose.Words-biblioteket installerat.

F: Hur laddar jag ett källdokument till Aspose.Words för .NET?

S: För att ladda ett källdokument i Aspose.Words för .NET kan du användaDocument klass genom att ange filsökvägen till dokumentet. Här är en exempelkod:

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

F: Hur får man fram innehållet i ett specifikt bokmärke i ett källdokument med Aspose.Words för .NET?

S: För att få innehållet i ett specifikt bokmärke i ett källdokument med Aspose.Words för .NET kan du komma åtBookmarks egenskapen för källdokumentområdet och använd bokmärkesnamnet för att hämta det specifika bokmärket. Här är en exempelkod:

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

F: Hur anger man platsen för bokmärkestextkopian i ett måldokument med Aspose.Words för .NET?

S: För att ange var du vill lägga till kopierad bokmärkestext i ett måldokument med Aspose.Words för .NET, kan du navigera till brödtexten i den sista delen av måldokumentet. Du kan användaLastSection egendom för att komma åt den sista sektionen ochBody egendom för att få tillgång till avsnittet. Här är en exempelkod:

CompositeNode dstNode = dstDoc.LastSection.Body;

F: Hur importerar och kopierar man bokmärkestext från källdokument till måldokument med Aspose.Words för .NET?

S: För att importera och kopiera bokmärkestext från ett källdokument till ett måldokument med Aspose.Words för .NET, kan du användaNodeImporter klass som anger källdokumentet, måldokumentet och formateringsläget att behålla. Då kan du användaAppendBookmarkedText metod för att lägga till bokmärkestexten i måldokumentet. Här är en exempelkod:

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

F: Hur sparar man ett måldokument efter att ha kopierat bokmärkestext med Aspose.Words för .NET?

S: För att spara ett måldokument efter att ha kopierat text från ett bokmärke med Aspose.Words för .NET, kan du användaSave metod förDocument objekt som anger destinationsfilens sökväg. Här är en exempelkod:

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