2012-04-20 3 views
0

저는 PresentationML 파서에서 작업 중이며 글꼴 색상과 관련하여 테마에 대한 지원을 구현하려고합니다. 나는 SDK와 함께 일하고 있어요, 나는이 괴물을 의아해했습니다프레젠테이션 테마에서 실행/txbody/단락의 글꼴 색을 어떻게 얻습니까?

Slide.SlidePart.SlideLayoutPart.SlideMasterPart.SlideMaster.SlideMasterPart.ThemePart.Theme.ThemeElements.ColorScheme 

을하지만 그것은 그렇지 않으면 지정된 색상의이 없었던 실행에 대한 색상을 얻기 위해가는 곳은 아직 분명하지 않다. 이것에 대한 도움은 크게 감사 할 것입니다.

TIA.

업데이트 : xml을 넘어서 보니 위에 게시 된 괴물 호출이 아마도 올바른 것 같습니다. 찾고있는 16 진수 코드와 일치하는 "val"속성을 가진 요소를 생성합니다 . 그러나 컬러 맵 (이 경우 "Light1")에서 특정 구성표를 어떻게 해결할지는 분명하지 않습니다. 나는 그 길의 약 75 %를 차지하고 있다고 생각합니다. 누군가가 논리에 도움을 주어 어떤 계획이 실행에 적용되는지를 알면, 그것이 내가 필요한 것이라고 생각합니다.

답변

3

무료 서적 Open XML Explained은 이해를 돕기 위해 약간의 통찰력을 제공 할 수 있습니다. 위해 PresentationML 섹션에서 문서의 내용 구조는 테마와 마스터 레이아웃이 기본값으로 제공하는 데 사용하는 방법에 대해 이야기 :

86 페이지 - 둘째 단락 :

DrawingML의 테마 글꼴에 대한 기본 값을 만드는 데 사용할 수 있습니다 , 레이아웃 및 기타 브랜딩 관련 데이터를 수집하여 프레젠테이션 본문과 분리 할 수 ​​있습니다. 테마는 모든 Open XML 마크 업 언어에서 재사용 할 수 있습니다. PresentationML 패키지 안에는 다양한 테마가 사용됩니다. 기본적으로 각각의 마스터, 슬라이드, 노트 및 핸드 아웃 마스터는 별도의 테마 부분을 참조합니다. 프레젠테이션 자체는 또한 프레젠테이션에 사용되는 기본 테마를 참조합니다. 이 기본 테마는 패키지 내에서 동일한 부품을 참조하여 슬라이드 마스터와 공유합니다.

프레젠테이션 SlideMaster의 theme1.xml에는 슬라이드 마스터와 프레젠테이션에 사용되는 테마 정의가 있습니다. 색 이름 Light1, Dark1 등은 각 테마에 대한 테마 요소의 색 구성표에서 12 가지 필수 색으로 매핑됩니다. 자세한 내용은 schema을 참조하십시오.

그래서 Run에서 테마에 정의 된 번호에 매핑되는 Light1을 볼 수 있습니다. 제작자가 마스터 레이아웃 및/또는 테마를 변경하면 Light1은 실행 중에 변경되지 않지만 테마의 값이 새로운 값을 가져올 수도 있습니다. 12 개 색상이 오픈 XML에 언급

121 페이지의

는 설명 :

을 모든 테마의 데이터를 보유하고 themeElements 노드를 만드는 데 필요한 테마 요소 내부. 이 레벨에서는 테마 요소 내부의 기존 정보에 대한 추가 정보 또는 재정의를 적용 할 수도 있습니다. 테마 요소는 하위 노드 집합을 사용하여 구성되며, 각 노드는 글꼴이나 색과 같은 특정 데이터 항목을 식별합니다. clrScheme 요소는 색상 목록을 정의합니다. 테마 색상 목록은 'accent1'또는 'visited link'와 같은 항목으로 제한됩니다. 이 테마 색상 각각은 노드 이름이 테마 색상을 식별하는 별도의 XML 요소를 사용합니다. 이 요소 내부에서 앞서 DrawingML을 사용하여 도형을 색칠하는 방법에 대해 설명합니다. 마크 업 샘플 157에는 'dark-1'과 'accent-1'의 두 가지 테마 색이 정의되어 있습니다. 마크 업 샘플이 완전하지 않습니다. 12 개의 테마 색상 모두에 대해 값을 정의해야합니다.

희망이 ... 도움이