Изменить элементы управления содержимым
В этом руководстве объясняется, как изменить различные типы элементов управления содержимым в документе 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.