2010. 1. 6. 06:46

CHM 파일 병합하기 (Merge chm files)

chm 파일을 여러개 병합한다. 이진적인 병합이 아닌 논리적인 병합이 된다.

A, B 두개의 파일을 A 에다가 Merge 하면 A 에서 B 의 내용을 볼 수 있다. 인덱스도 검색가능하다. 단, B 가 지정된 경로에 존재해야 한다.

병합하는 방법은 아래와 같다.

* 부모 .chm 파일의 [MERGE FILES] 섹션에 자식 .chm 파일을 포함시키기

1. [OPTIONS] 더블 클릭
2. 클릭 Merge Files 탭
3. 클릭 Add

* 부모 .chm 파일 인덱스에 최소한 하나의 키워드가 있어야 자식 .chm 파일의 인덱스가 자동으로 포함된다.

* 부모 와 자식 인덱스 모두 binary 인덱스여야 한다.

1. [OPTIONS] 섹션 더클 클릭
2. Compiler 클릭
3. Create a binary index 체크 박스 선택

* .chm 파일명에 공백이나 점을 포함시키지 말 것

* 아래와 같은 Topic 이 추가되어야 한다.

INCLUDE: childchm.chm::\childchm.hhc

1. Contents 테이블에서 오른쪽 클릭
2. Insert File 클릭
3. .chm 파일명과 .hhc 파일 명 기입
4. 파일을 찾을 수 없다고 하더라도, 그냥 Yes 를 선택한다.

* 자식 .chm 파일과 부모 .chm 파일이 폴더 내에 있어야 한다.

Note : merge 연산은 대상 .chm 파일을 참조하는 링크를 생성할 뿐이다. 프로젝트에 링크 사본을 복사하지 않는다. 만일 자식 .chm 파일을 삭제한다면, 자식 .chm 파일의 인덱스와 키워드를 볼 수 없다.

* 알려진 버그로 인해, 컨텐츠 테이블이 병합되지만, 토픽이 올바르게 들여쓰기 되지 않는다.

예를 들어 아래처럼 보여야 할 목록이

 Mybook
       Chapter 1
       Chapter 2
       Chapter 3

아래 처럼 보여질 수 있다.

 Mybook
       Chapter 1
              Chapter 2
                     Chapter 3
                            Chapter 4

이 버그를 해결하기 위해서는, 메모장에서 부모 .hhc 파일을 변경해야 한다. 모든 부가적인 <UL> 과 </UL> 태그를 모두 삭제하고, .hhc 파일을 저장, 그리고 부모 .chm 파일을 재 컴파일 한다.

참고 : http://support.microsoft.com/kb/311151/en-us?fr=1