Изменить элементы управления содержимым

В этом руководстве объясняется, как изменить различные типы элементов управления содержимым в документе Word с помощью Aspose.Words для .NET. Вы можете обновить текст, выбранное значение раскрывающегося списка или заменить изображение в элементах управления содержимым.

Предварительные условия

Чтобы следовать этому руководству, вам необходимо иметь следующее:

  • Установлена библиотека Aspose.Words для .NET.
  • Базовые знания C# и обработки документов Word.

Шаг 1. Настройте каталог документов

Начните с настройки пути к каталогу ваших документов. Заменять"YOUR DOCUMENT DIRECTORY" с фактическим путем к каталогу, в котором находится ваш документ.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Шаг 2. Загрузите документ и перебирайте элементы управления содержимым

Загрузите документ Word, используяDocument конструктор, передавая путь к документу в качестве параметра. Перебрать все теги структурированного документа в документе, используяforeach петля.

Document doc = new Document(dataDir + "Structured document tags.docx");
foreach (StructuredDocumentTag sdt in doc.GetChildNodes(NodeType.StructuredDocumentTag, true))
{
    // Выполнять действия в зависимости от типа контроля контента
}

Шаг 3. Измените элемент управления содержимым в виде простого текста

Для элементов управления содержимым типаSdtType.PlainText, удалите все существующие дочерние элементы, создайте новый абзац и добавьте фрагмент с нужным текстом.

case SdtType.PlainText:
{
    sdt.RemoveAllChildren();
    Paragraph para = sdt.AppendChild(new Paragraph(doc)) as Paragraph;
    Run run = new Run(doc, "new text goes here");
    para.AppendChild(run);
    break;
}

Шаг 4. Измените элемент управления содержимым раскрывающегося списка

Для элементов управления содержимым типаSdtType.DropDownList , обновите выбранное значение, установив для него определенное значениеSdtListItem.

case SdtType.DropDownList:
{
    SdtListItem secondItem = sdt.ListItems[2];
    sdt.ListItems.SelectedValue = secondItem;
    break;
}

Шаг 5. Измените элемент управления содержимым изображения

Для элементов управления содержимым типаSdtType.Picture, извлеките фигуру из элемента управления содержимым и замените ее изображение новым.

case SdtType.Picture:
{
    Shape shape = (Shape)sdt.GetChild(NodeType.Shape, 0, true);
    if (shape.HasImage)
    {
        shape.ImageData.SetImage(ImagesDir + "Watermark.png");
    }
    break;
}

Шаг 6. Сохраните измененный документ

Сохраните измененный документ в указанную директорию, используя командуSaveметод. Укажите желаемое имя файла с соответствующим расширением. В этом примере мы сохраняем документ как «WorkingWithSdt.ModifyContentControls.docx».

doc.Save(dataDir + "WorkingWithSdt.ModifyContentControls.docx");

Пример исходного кода для изменения элементов управления содержимым с помощью Aspose.Words для .NET

	// Путь к каталогу ваших документов
	string dataDir = "YOUR DOCUMENT DIRECTORY";

	Document doc = new Document(dataDir + "Structured document tags.docx");
	foreach (StructuredDocumentTag sdt in doc.GetChildNodes(NodeType.StructuredDocumentTag, true))
	{
		switch (sdt.SdtType)
		{
			case SdtType.PlainText:
			{
				sdt.RemoveAllChildren();
				Paragraph para = sdt.AppendChild(new Paragraph(doc)) as Paragraph;
				Run run = new Run(doc, "new text goes here");
				para.AppendChild(run);
				break;
			}
			case SdtType.DropDownList:
			{
				SdtListItem secondItem = sdt.ListItems[2];
				sdt.ListItems.SelectedValue = secondItem;
				break;
			}
			case SdtType.Picture:
			{
				Shape shape = (Shape) sdt.GetChild(NodeType.Shape, 0, true);
				if (shape.HasImage)
				{
					shape.ImageData.SetImage(ImagesDir + "Watermark.png");
				}
				break;
			}
		}
	}
	doc.Save(dataDir + "WorkingWithSdt.ModifyContentControls.docx");

Вот и все! Вы успешно изменили различные типы элементов управления содержимым в своем документе Word с помощью Aspose.Words для .NET.