Добавить текст с закладкой в документ Word
В этой статье мы рассмотрим приведенный выше исходный код C#, чтобы понять, как использовать функцию «Добавить текст с закладками» в библиотеке Aspose.Words для .NET. Эта функция позволяет добавлять текст, содержащийся в определенной закладке документа Word, в другой документ.
Предварительные условия
- Базовые знания языка C#.
- Среда разработки .NET с установленной библиотекой Aspose.Words.
Шаг 1. Получение абзацев из закладки
Прежде чем мы начнем добавлять текст закладки, нам нужно получить абзацы, содержащие начало и конец закладки. Это можно сделать, обратившись кBookmarkStart
иBookmarkEnd
свойства закладки:
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;
Шаг 2. Проверьте родительские абзацы
Мы проверяем, имеют ли начальный и конечный абзацы допустимые родители, то есть действительно ли они принадлежат абзацу. Если нет, мы генерируем исключение:
if (startPara == null || endPara == null)
throw new InvalidOperationException(
"The parent of the beginning or the end of the bookmark is not a paragrap
hey, this situation can't be handled yet.");
Шаг 3. Проверьте родительские элементы абзацев
Мы проверяем, имеют ли начальный и конечный абзацы одного и того же родителя. Если нет, это означает, что абзацы не содержатся в одном разделе или документе, и мы выдаем исключение:
if (startPara.ParentNode != endPara.ParentNode)
throw new InvalidOperationException(
"Beginning and ending paragraphs have different parents, this situation cannot be handled yet.");
Шаг 4. Скопируйте абзацы
Мы перебираем узлы (абзацы) от начального абзаца до конечного абзаца. Для каждого узла мы создаем копию и импортируем ее в контекст целевого документа:
Node endNode = endPara.NextSibling;
for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
Node newNode = importer.ImportNode(curNode, true);
dstNode.AppendChild(newNode);
}
Пример исходного кода для добавления текста с закладками с использованием Aspose.Words для .NET
Вот полный пример исходного кода, демонстрирующий добавление текста из закладки с помощью Aspose.Words для .NET:
// Это абзац, содержащий начало закладки.
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
// Это абзац, содержащий конец закладки.
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.");
// Ограничимся достаточно простым сценарием.
if (startPara.ParentNode != endPara.ParentNode)
throw new InvalidOperationException(
"Start and end paragraphs have different parents, cannot handle this scenario yet.");
// Мы хотим скопировать все абзацы от начального до конечного абзаца (включительно).
// поэтому узел, на котором мы останавливаемся, находится после конечного абзаца.
Node endNode = endPara.NextSibling;
for (Node curNode = startPara; curNode != endNode; curNode = curNode.NextSibling)
{
//Это создает копию текущего узла и импортирует ее (делает ее допустимой) в контексте.
// документа назначения. Импорт означает правильную настройку стилей и идентификаторов списков.
Node newNode = importer.ImportNode(curNode, true);
dstNode.AppendChild(newNode);
}
Заключение
В этой статье мы изучили исходный код C#, чтобы понять, как использовать функцию добавления текста с закладками в Aspose.Words для .NET. Мы следовали пошаговому руководству по получению абзацев из закладки, проверке родительских элементов и копированию абзацев в другой документ.
Часто задаваемые вопросы по добавлению текста с закладками в документ Word
Вопрос 1: Каковы необходимые условия для использования функции «Добавить текст с закладками» в Aspose.Words для .NET?
О: Чтобы использовать функцию «Добавить текст с закладками» в Aspose.Words for .NET, вам необходимо иметь базовые знания языка C#. Вам также потребуется среда разработки .NET с установленной библиотекой Aspose.Words.
Вопрос 2. Как получить абзацы, содержащие начало и конец закладки в документе Word?
О: Чтобы получить абзацы, содержащие начало и конец закладки в документе Word, вы можете получить доступ кBookmarkStart
иBookmarkEnd
свойства закладки. Вот пример кода:
Paragraph startPara = (Paragraph) srcBookmark.BookmarkStart.ParentNode;
Paragraph endPara = (Paragraph) srcBookmark.BookmarkEnd.ParentNode;
Вопрос 3. Что произойдет, если у начального и конечного абзацев нет допустимых родительских элементов?
О: Если начальный и конечный абзацы не имеют допустимых родительских элементов, т.е. на самом деле они не являются абзацами, будет выдано исключение. В настоящее время эту ситуацию невозможно контролировать.