Toon inhoud met bladwijzer verbergen in Word-document
In dit artikel zullen we de bovenstaande C#-broncode verkennen om te begrijpen hoe u de functie Show Hide Bookmarked Content in de Aspose.Words voor .NET-bibliotheek kunt gebruiken. Met deze functie kunt u de inhoud van een bladwijzer in een Word-document weergeven of verbergen op basis van een specifieke voorwaarde bij het samenvoegen van gegevens.
Vereisten
- Basiskennis van de C#-taal.
- .NET-ontwikkelomgeving met Aspose.Words-bibliotheek geïnstalleerd.
Stap 1: De bladwijzer ophalen
Wij gebruiken deBookmarks
eigenschap van het documentbereik om de specifieke bladwijzer te krijgen waarop we de inhoud willen tonen of verbergen:
Bookmark bm = doc.Range.Bookmarks[bookmarkName];
Stap 2: De samenvoegvelden invoegen
Wij maken gebruik van een documentbuilderDocumentBuilder
om de benodigde samenvoegvelden in te voegen. Deze samenvoegvelden stellen een voorwaarde in om de bladwijzerinhoud weer te geven of te verbergen, afhankelijk van de waarde van deshowHide
variabele:
DocumentBuilder builder = new DocumentBuilder(doc);
builder. MoveToDocumentEnd();
Field field = builder. InsertField("IF \"", null);
builder. MoveTo(field. Start. NextSibling);
builder. InsertField("MERGEFIELD " + bookmarkName + "", null);
builder. Write("\" = \"true\" ");
builder. Write("\"");
builder. Write("\"");
builder. Write(" \"\"");
Stap 3: Bladwijzerinhoud verplaatsen
We doorlopen de inhoud van de bladwijzer en verplaatsen deze zodat deze verschijnt
isse vóór de bladwijzer. Hiermee regel je het tonen of verbergen van inhoud op basis van de opgegeven voorwaarde:
Node currentNode = field. Start;
bool flag = true;
while (currentNode != null && flag)
{
if (currentNode.NodeType == NodeType.Run)
if (currentNode.ToString(SaveFormat.Text).Trim() == "\"")
flag = false;
Node nextNode = currentNode.NextSibling;
bm.BookmarkStart.ParentNode.InsertBefore(currentNode, bm.BookmarkStart);
currentNode = nextNode;
}
Stap 4: Verplaats de rest van de bladwijzerinhoud
We verplaatsen de rest van de bladwijzerinhoud na de bladwijzer, waarbij we het eindknooppunt van de bladwijzer als invoegpunt gebruiken:
Node endNode = bm.BookmarkEnd;
flag = true;
while (currentNode != null && flag)
{
if (currentNode.NodeType == NodeType.FieldEnd)
flag = false;
Node nextNode = currentNode.NextSibling;
bm.BookmarkEnd.ParentNode.InsertAfter(currentNode, endNode);
endNode = currentNode;
currentNode = nextNode;
}
Stap 5: Het samenvoegen uitvoeren
Wij gebruiken deExecute
methode van het documents
Mailmergeobject to execute the merge using the bookmark name and the value of the
showHide` variabele:
doc. MailMerge. Execute(new[] { bookmarkName }, new object[] { showHide });
Voorbeeldbroncode voor Show Hide Bookmarked Content met Aspose.Words voor .NET
Hier is het volledige voorbeeld van broncode om het tonen of verbergen van bladwijzerinhoud aan te tonen met Aspose.Words voor .NET:
Bookmark bm = doc.Range.Bookmarks[bookmarkName];
DocumentBuilder builder = new DocumentBuilder(doc);
builder.MoveToDocumentEnd();
// {IF "{MERGEFIELD-bladwijzer}" = "true" "" ""}
Field field = builder.InsertField("IF \"", null);
builder.MoveTo(field.Start.NextSibling);
builder.InsertField("MERGEFIELD " + bookmarkName + "", null);
builder.Write("\" = \"true\" ");
builder.Write("\"");
builder.Write("\"");
builder.Write(" \"\"");
Node currentNode = field.Start;
bool flag = true;
while (currentNode != null && flag)
{
if (currentNode.NodeType == NodeType.Run)
if (currentNode.ToString(SaveFormat.Text).Trim() == "\"")
flag = false;
Node nextNode = currentNode.NextSibling;
bm.BookmarkStart.ParentNode.InsertBefore(currentNode, bm.BookmarkStart);
currentNode = nextNode;
}
Node endNode = bm.BookmarkEnd;
flag = true;
while (currentNode != null && flag)
{
if (currentNode.NodeType == NodeType.FieldEnd)
flag = false;
Node nextNode = currentNode.NextSibling;
bm.BookmarkEnd.ParentNode.InsertAfter(currentNode, endNode);
endNode = currentNode;
currentNode = nextNode;
}
doc.MailMerge.Execute(new[] { bookmarkName }, new object[] { showHide });
Conclusie
In dit artikel hebben we de C#-broncode onderzocht om te begrijpen hoe u de functie Show Hide Bookmarked Content van Aspose.Words voor .NET kunt gebruiken. We hebben een stapsgewijze handleiding gevolgd om de inhoud van een bladwijzer weer te geven of te verbergen op basis van een specifieke voorwaarde bij het samenvoegen van gegevens.
Veelgestelde vragen over het weergeven en verbergen van bladwijzerinhoud in een Word-document
Vraag: Kan ik dezelfde voorwaarde gebruiken voor meerdere bladwijzers in hetzelfde document?
A: Ja, u kunt dezelfde voorwaarde gebruiken voor meerdere bladwijzers in hetzelfde document. Herhaal gewoon stap 2-5 voor elke bladwijzer, waarbij u de bladwijzernaam en optioneel de waarde van de bladwijzer aanpastshowhide
variabel als dat nodig is.
Vraag: Hoe kan ik meer voorwaarden toevoegen om bladwijzerinhoud weer te geven of te verbergen?
A: Om meer voorwaarden toe te voegen, kunt u logische operatoren gebruiken, zoalsAND
EnOR
in de code voor het invoegen van de samenvoegvelden in stap 2. Bewerk de voorwaarde in de volgende code om aanvullende voorwaarden toe te voegen:
builder. Write("\" = \"true\" ");
Vraag: Hoe kan ik een bladwijzer in een Word-document verwijderen met Aspose.Words voor .NET?
A: Om een bladwijzer in een Word-document te verwijderen met Aspose.Words voor .NET, kunt u deRemove
methode uit deBookmarks
verzameling van het documentbereik. Hier is voorbeeldcode voor het verwijderen van een specifieke bladwijzer:
doc.Range.Bookmarks.Remove(bookmarkName);
Vraag: Is de Aspose.Words-bibliotheek gratis?
A: De Aspose.Words-bibliotheek is een commerciële bibliotheek en vereist een geldige licentie om in uw projecten te gebruiken. Je kunt controlerenAspose.Words voor .NET API-referenties voor meer informatie over licentieopties en prijzen.
Vraag: Zijn er andere bibliotheken beschikbaar voor tekstverwerking met Word-documenten in .NET?
A: Ja, er zijn andere bibliotheken beschikbaar voor woordenverwerking met Word-documenten in .NET, zoals Open XML SDK en GemBox.Document. U kunt deze bibliotheken verkennen als alternatief voor Aspose.Words op basis van uw specifieke behoeften en voorkeuren.