2010-08-06 3 views
3

특정 XML을 단어 문서에 첨부해야 요소가 올바른 위치에 표시됩니다. 이것은 OpenXML SDK로 할 수 있습니다.OpenXML : 바인딩을 사용하여 재사용 가능한 내용 컨트롤 만들기

다른 사람들이 XML이 첨부 될 실제 문서 템플릿을 만들 수 있도록 이미 일종의 템플릿으로 묶여있는 콘텐츠 컨트롤을 정의 할 수 있기를 바랍니다. 좋아, 사람들이 내가 무엇을 의미하는지 알 수 없으므로 나는 더 설명 할 것이다.

동일한 XML 데이터를 사용하므로 동일한 콘텐츠 컨트롤을 사용하는 다양한 문서 템플릿이있을 수 있습니다. 문서를 만드는 것은 다른 사람의 몫입니다.

시나리오 : 일부 변경 사항 (새 레이아웃 또는 somehting)으로 인해 프로그래머가 아닌 사람이 평소 정보에 대한 새 양식을 만들어야합니다. 이것은 XML 정보와 아무 관련이 없으며 그대로 유지됩니다.

"최적의 솔루션"을위한 최적의 솔루션은 Word에서 문서를 만들고 콘텐츠 컨트롤을 비슷한 위치 (또는 비슷한 솔루션)로 드래그하는 것입니다. 그런 다음 XML이 문서에 추가되면 콘텐츠 컨트롤이 사전 바인딩되어 있으므로 아무런 문제가 없습니다.

이제 몇 가지 포인트는 여기에 있습니다 :

1) 콘텐츠 컨트롤은 사전 바인더 제본 할 수 있습니까? 경로에 XML이 없으면 문제없이 빈 상태로 유지되지 않습니까?

2) i4i 소송으로 인해 컨텐츠 컨트롤을 CustomXML에 바인딩하면 이후 버전의 Word에서 계속 사용할 수 있습니까?

3) 이보다 더 좋은 최적의 해결책이 있습니까?

미리 감사드립니다.

편집 :

더 명확해야합니다. 나는 그들과 데이터 바인딩 된 xpath를 식별 할 수있는 몇 가지 이름을 가진 콘텐츠 컨트롤을 만들지는 않을 것입니다. 그러나 그 순간에는 그 길에 아무것도 없습니다.

다른 사용자가 들어 와서 양식을 만들고 그 위에 레이아웃을 결정한 다음 정보가 필요한 장소에 콘텐츠 컨트롤을 추가합니다.

나중에 항목 X에 대한 정보는 새 양식을 사용하여 요청합니다. 그러면 해당 양식의 사본이 만들어지며 CustomXML이 Docx 파일에 추가됩니다. 이제는 XML shchema가 미리 알려졌고 CC의 경로를 결정할 때이 XML 데이터가 Content Control에 바인딩되기 때문입니다.

+0

분명히 이해할 수 있습니다. 사용자가 Word 클라이언트에 CC를 추가하도록하고 싶을 때 추가 할 때 일부 데이터에 바운드되도록하고 싶습니까? –

+0

@Otaku 나는 CC를 미리 정의하여 워드 문서 (단어 client 사용)에 추가하여 워드 문서가 CustomXML을 사용할 준비가되도록 미리 정의하지는 않습니다. –

답변

2

좋은 옵션 중 하나는 VSTO (Visual Studio for Office)을 사용하여 사전 바인딩 코드가 첨부 된 문서 템플릿 세트를 작성하는 것입니다. 이 두 기사는 이러한 유형의 솔루션을 찾고에 좋은 시작을 제공합니다 12 : Binding Content Controls to Custom XML Parts

Creating a Template By Using Content Controls

  • +0

    현재 VSTO가 없기 때문에 VS 전문 버전이 필요하다고 생각합니다. 하지만 어쩌면 내가 잡을거야. 다른 기사를 보지 못했지만 CustomXML을 첨부하는 방법을 알고 있습니다. 문서 작성자에게 CC의 권한을 추가 할 수없는 이유를 추가 한 후 대부분의 바인딩 솔루션이 마음에 들지 않습니다. 이것을 확인한 다음 알게하고 모든 것이 좋다면 정답을 줄 것입니다. –

    +0

    차가움. VSTO의 CC 이벤트에 하나 이상의 링크 집합을 추가했습니다. 이는 CC의 사용자 삽입을 후킹하고 유효성을 검사하는 데 도움이 될 수 있습니다. –

    +1

    BTW - 일반적으로 최종 사용자가 CC를 삽입하지 않아야합니다. 오히려 Building Block (CC가 포함될 수 있음) - 삽입> QuickParts를 삽입합니다. 그런 식으로 개발자 도구 모음을 사용하지 않아도됩니다. –

    1

    이것은 매우 간단해야합니다. 사용자 정의 컨트롤은 i4i 소송의 영향을받지 않으며 각 컨트롤의 tag 속성을 사용하여 이름을 지정할 수 있습니다 (경고 - 64 자로 제한됨).

    +0

    콘텐츠 컨트롤 (나는 당신이 언급 한 것 같아요)을 사용하고 더 쉽게 만들 수 있도록 템플릿에 QuickPart로 추가했습니다. 가장 큰 문제는 반복되는 항목 이었지만 표로 추가하고 마지막 줄을 여러 번 반복했습니다. –

    +0

    죄송합니다. 콘텐츠 컨트롤입니다. 다행 당신을 위해 작동합니다. –