콘텐츠 컨트롤 수정

이 튜토리얼에서는 Aspose.Words for .NET을 사용하여 Word 문서에서 다양한 유형의 콘텐츠 컨트롤을 수정하는 방법을 설명합니다. 텍스트, 드롭다운 목록의 선택한 값을 업데이트하거나 콘텐츠 컨트롤 내의 이미지를 바꿀 수 있습니다.

전제조건

이 튜토리얼을 따르려면 다음이 필요합니다.

  • .NET 라이브러리용 Aspose.Words가 설치되었습니다.
  • 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");

.NET용 Aspose.Words를 사용하여 콘텐츠 컨트롤 수정에 대한 예제 소스 코드

	// 문서 디렉터리 경로
	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");

그게 다야! Aspose.Words for .NET을 사용하여 Word 문서에서 다양한 유형의 콘텐츠 컨트롤을 성공적으로 수정했습니다.