필드를 정적 텍스트로 바꾸기
문서를 정적 복사본으로 저장하려는 경우 필드 교체가 필요한 경우가 많습니다. 예를 들어,전자 메일에 첨부 파일로 보낼 때. 다음과 같은 필드 변환 DATE
또는 TIME
정적 텍스트에 문서가 전송 된 때와 동일한 날짜를 표시 할 수 있습니다. 또한 일부 상황에서는 조건부 프로그램을 제거해야 할 수도 있습니다 IF
문서의 필드를 대신 가장 최근의 텍스트 결과로 바꿉니다. 예를 들어, IF
문서의 필드가 업데이트될 때 더 이상 동적으로 값을 변경하지 않도록 필드를 정적 텍스트로 바꿉니다.
아래 다이어그램은 어떻게 IF
필드가 문서에 저장됩니다:
- 텍스트는 특수 필드 노드로 둘러싸여 있습니다 – FieldStart 그리고 FieldEnd
- 그 FieldSeparator 노드는 필드 내의 텍스트를 필드 코드 및 필드 결과로 구분합니다
- 필드 코드는 필드의 일반적인 동작을 정의하지만 필드 결과는 이 필드를 사용하여 업데이트할 때 가장 최근의 결과를 유지합니다 Microsoft Word 또는 Aspose.Words
- 필드 결과는 필드에 저장되어 볼 때 문서에 표시되는 것입니다
구조는 또한 데모 프로젝트를 사용하여 계층 적 형태로 아래에서 볼 수 있습니다 “DocumentExplorer”.
텍스트로 바꿀 수 없는 필드
필드를 정적 텍스트로 바꾸면 머리글이나 바닥글의 일부 필드에 대해 제대로 작동하지 않습니다.
예를 들어, PAGE
정적 텍스트에 대한 머리글 또는 바닥글의 필드는 모든 페이지에 동일한 값이 표시됩니다. 머리글과 바닥글이 여러 페이지에 걸쳐 반복되고 필드로 유지되면 각 페이지에 대한 올바른 결과를 표시하도록 처리되기 때문입니다.
그러나,헤더에서, PAGE
필드는 텍스트의 정적 실행으로 잘 변환됩니다. 이 텍스트 실행은 섹션의 마지막 페이지인 것처럼 평가되며,이로 인해 PAGE
모든 페이지 위에 마지막 페이지를 표시하는 헤더의 필드입니다.
다음 코드 예제에서는 필드를 최신 결과로 바꾸는 방법을 보여 줍니다:
특정 문서 파트의 특정 필드 유형 변환
그 이후 ConvertFieldsToStaticText 메서드는 두 개의 매개 변수를 허용합니다. CompositeNode 속성 및 FieldType 열거,이 메서드에 모든 복합 노드를 전달할 수 있습니다. 이렇게 하면 문서의 특정 부분에서만 필드를 정적 텍스트로 변환할 수 있습니다.
예를 들어,당신은 통과 할 수 있습니다 Document 개체 및 정적 텍스트로 전체 문서에서 지정된 유형의 필드를 변환,또는 당신은 Body 섹션의 개체이며 해당 본문에 있는 필드만 변환합니다.
그 FieldType 에 전달 된 열거 ConvertFieldsToStaticText 메서드는 정적 텍스트로 변환해야 하는 필드 유형을 지정합니다. 문서에 있는 다른 필드 유형은 변경되지 않습니다.
다음 코드 예제에서는 특정 유형의 필드를 선택하는 방법을 보여 줍니다 – targetFieldType 특정 노드 – compositeNode 그리고 정적 텍스트로 변환:
다음 코드 예제에서는 모두 변환하는 방법을 보여 줍니다 IF
정적 텍스트에 대한 문서의 필드:
다음 코드 예제에서는 모두 변환하는 방법을 보여 줍니다 PAGE
정적 텍스트에 대한 문서 본문의 필드:
다음 코드 예제에서는 모두 변환하는 방법을 보여 줍니다 IF
정적 텍스트에 대한 마지막 단락의 필드: