Dołącz zakładkę do tekstu w dokumencie Word

Wstęp

Cześć! Czy kiedykolwiek próbowałeś dołączyć tekst z sekcji zakładek w dokumencie Word i wydawało Ci się to trudne? Masz szczęście! Ten samouczek przeprowadzi Cię przez proces przy użyciu Aspose.Words dla .NET. Podzielimy go na proste kroki, abyś mógł łatwo śledzić. Zanurzmy się i dołączmy ten tekst zakładek jak profesjonalista!

Wymagania wstępne

Zanim zaczniemy, upewnijmy się, że masz wszystko, czego potrzebujesz:

  • Aspose.Words dla .NET: Upewnij się, że masz zainstalowany. Jeśli nie, możeszpobierz tutaj.
  • Środowisko programistyczne: dowolne środowisko programistyczne .NET, np. Visual Studio.
  • Podstawowa wiedza o języku C#: Pomocna będzie znajomość podstawowych koncepcji programowania w języku C#.
  • Dokument Word z zakładkami: Dokument Word z ustawionymi zakładkami, których będziemy używać do dodawania tekstu.

Importuj przestrzenie nazw

Po pierwsze, zaimportujmy niezbędne przestrzenie nazw. Dzięki temu będziemy mieć wszystkie potrzebne narzędzia pod ręką.

using System;
using Aspose.Words;
using Aspose.Words.Importing;

Podzielmy przykład na szczegółowe kroki.

Krok 1: Załaduj dokument i zainicjuj zmienne

No dobrze, zacznijmy od załadowania naszego dokumentu Word i zainicjowania zmiennych, których będziemy potrzebować.

// Załaduj dokumenty źródłowe i docelowe.
Document srcDoc = new Document("source.docx");
Document dstDoc = new Document("destination.docx");

// Zainicjuj importer dokumentów.
NodeImporter importer = new NodeImporter(srcDoc, dstDoc, ImportFormatMode.KeepSourceFormatting);

// Znajdź zakładkę w dokumencie źródłowym.
Bookmark srcBookmark = srcDoc.Range.Bookmarks["YourBookmarkName"];

Krok 2: Zidentyfikuj akapit początkowy i końcowy

Teraz zlokalizujmy akapity, w których zakładka zaczyna się i kończy. Jest to kluczowe, ponieważ musimy obsługiwać tekst w tych granicach.

// To jest akapit zawierający początek zakładki.
Paragraph startPara = (Paragraph)srcBookmark.BookmarkStart.ParentNode;

// To jest akapit zawierający zakończenie zakładki.
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.");

Krok 3: Sprawdź nadrzędne elementy akapitu

Musimy upewnić się, że akapity początkowy i końcowy mają tego samego rodzica. To prosty scenariusz, aby zachować prostotę.

// Ograniczmy się do stosunkowo prostego scenariusza.
if (startPara.ParentNode != endPara.ParentNode)
    throw new InvalidOperationException("Start and end paragraphs have different parents, cannot handle this scenario yet.");

Krok 4: Zidentyfikuj węzeł, który chcesz zatrzymać

Następnie musimy określić węzeł, w którym zakończymy kopiowanie tekstu. Będzie to węzeł bezpośrednio po akapicie końcowym.

// Chcemy skopiować wszystkie akapity od początkowego aż do końcowego (włącznie),
// Dlatego węzeł, przy którym się zatrzymamy, znajduje się jeden po akapicie końcowym.
Node endNode = endPara.NextSibling;

Krok 5: Dołącz zapisany tekst do dokumentu docelowego

Na koniec przejrzyjmy węzły od akapitu początkowego do węzła znajdującego się po akapicie końcowym i dołączmy je do dokumentu docelowego.

for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
    // Tworzy kopię bieżącego węzła i importuje ją (uczyni ją prawidłową) w kontekście
    // dokumentu docelowego. Importowanie oznacza prawidłowe dostosowanie stylów i identyfikatorów listy.
    Node newNode = importer.ImportNode(curNode, true);

    // Dołącz zaimportowany węzeł do dokumentu docelowego.
    dstDoc.FirstSection.Body.AppendChild(newNode);
}

// Zapisz dokument docelowy z dołączonym tekstem.
dstDoc.Save("appended_document.docx");

Wniosek

I masz to! Udało Ci się dołączyć tekst z sekcji z zakładkami w dokumencie Worda przy użyciu Aspose.Words dla .NET. To potężne narzędzie sprawia, że manipulacja dokumentem staje się dziecinnie prosta, a teraz masz jeszcze jedną sztuczkę w rękawie. Miłego kodowania!

Najczęściej zadawane pytania

Czy mogę dodać tekst z wielu zakładek na raz?

Tak, możesz powtórzyć ten proces dla każdej zakładki i dodać odpowiedni tekst.

Co się stanie, jeśli akapit początkowy i końcowy mają różnych nadrzędnych?

bieżącym przykładzie zakłada się, że mają tego samego rodzica. W przypadku różnych rodziców wymagana jest bardziej złożona obsługa.

Czy mogę zachować oryginalne formatowanie dołączonego tekstu?

Absolutnie!ImportFormatMode.KeepSourceFormatting zapewnia zachowanie oryginalnego formatowania.

Czy można dodać tekst w określonym miejscu w dokumencie docelowym?

Tak, możesz dodać tekst w dowolnym miejscu, przechodząc do żądanego węzła w dokumencie docelowym.

Co zrobić, jeśli chcę dodać tekst z zakładki do nowej sekcji?

Możesz utworzyć nową sekcję w dokumencie docelowym i dodać tam tekst.