티스토리 뷰
"maven and docbook"을 구글링하면 제일 먼저 나오는 녀석이 docbkx-tools인데, 그 덕분에 참고할 자료도 좀 있는 편이다.
pom.xml 파일에 다음의 내용을 추가해주고:
덤으로 fop를 위한 폰트 매트릭을 만들어 주는 플러그인도 있다.
pom.xml 파일에 다음의 내용을 추가해주고:
위의 명령을 실행하면 sourceDirectory(위의 예에서는 src/fonts/truetype)안에 있는 *.ttf 파일들을 처리해서 targetDirectory(위의 예에서는 src/fonts/metrics)에 파일 이름 끝에 -metrics.xml을 붙인 메트릭 파일을 생성한다.
pom.xml 파일에 다음의 내용을 추가해주고:
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.9</version>
<executions>
<execution>
<goals>
<goal>generate-pdf</goal>
<goal>generate-html</goal>
</goals>
<!-- <phase>pre-site</phase> -->
</execution>
</executions>
<sourceDirectory>src/docbkx</sourceDirectory>
<targetDirectory>target/docbkx</targetDirectory>
<includes>**/*-manual.xml</includes>
<entities>
<entity>
<name>version</name>
<value>${pom.version}</value>
</entity>
</entities>
<chunkedOutput>true</chunkedOutput>
<highlightSource>1</highlightSource>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.9</version>
<executions>
<execution>
<goals>
<goal>generate-pdf</goal>
<goal>generate-html</goal>
</goals>
<!-- <phase>pre-site</phase> -->
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.docbook</groupId>
<artifactId>docbook-xml</artifactId>
<version>4.4</version>
</dependency>
</dependencies>
<configuration><sourceDirectory>src/docbkx</sourceDirectory>
<targetDirectory>target/docbkx</targetDirectory>
<includes>**/*-manual.xml</includes>
<entities>
<entity>
<name>version</name>
<value>${pom.version}</value>
</entity>
</entities>
<chunkedOutput>true</chunkedOutput>
<highlightSource>1</highlightSource>
<xincludeSupported>true</xincludeSupported>
<!-- 커스텀 스타일 시트 사용... -->
<foCustomization>src/docbook/stylesheets/fo.xsl </foCustomization>
<htmlCustomization>src/docbook/stylesheets/html.xsl </htmlCustomization>
-->
<!-- 나눔 글꼴 설정 -->
<bodyFontFamily>NanumMyeongjo</bodyFontFamily>
<titleFontFamily>NanumGothic</titleFontFamily>
<sansFontFamily>NanumGothic</sansFontFamily>
<monospaceFontFamily>NanumGothic_Coding</monospaceFontFamily>
<fonts>
<font>
<name>NanumMyeongjo</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumMyeongjo.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumMyeongjo-metrics.xml </metricsFile>
</font>
<font>
<name>NanumMyeongjo</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>src/fonts/truetype/NanumMyeongjoBold.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumMyeongjoBold-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumGothic.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothic-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>src/fonts/truetype/NanumGothicBold.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothicBold-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic_Coding</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumGothic_Coding.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothic_Coding-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic_Coding</name>
<style>normal</style>
<!-- 커스텀 스타일 시트 사용... -->
<foCustomization>src/docbook/stylesheets/fo.xsl </foCustomization>
<htmlCustomization>src/docbook/stylesheets/html.xsl </htmlCustomization>
-->
<!-- 나눔 글꼴 설정 -->
<bodyFontFamily>NanumMyeongjo</bodyFontFamily>
<titleFontFamily>NanumGothic</titleFontFamily>
<sansFontFamily>NanumGothic</sansFontFamily>
<monospaceFontFamily>NanumGothic_Coding</monospaceFontFamily>
<fonts>
<font>
<name>NanumMyeongjo</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumMyeongjo.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumMyeongjo-metrics.xml </metricsFile>
</font>
<font>
<name>NanumMyeongjo</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>src/fonts/truetype/NanumMyeongjoBold.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumMyeongjoBold-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumGothic.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothic-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>src/fonts/truetype/NanumGothicBold.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothicBold-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic_Coding</name>
<style>normal</style>
<weight>normal</weight>
<embedFile>src/fonts/truetype/NanumGothic_Coding.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothic_Coding-metrics.xml </metricsFile>
</font>
<font>
<name>NanumGothic_Coding</name>
<style>normal</style>
<weight>bold</weight>
<embedFile>src/fonts/truetype/NanumGothic_Coding_Bold.ttf </embedFile>
<metricsFile>src/fonts/metrics/NanumGothic_Coding_Bold-metrics.xml </metricsFile>
</font>
</fonts>
</configuration>
</plugin>
</font>
</fonts>
</configuration>
</plugin>
mvn docbkx:generate-pdf
명령을 실행하면 sourceDirectory(위의 예에서는 src/docbook) 아래에서 includes로 지정한 패턴(위의 예에서는 모든 하위디렉토리에서 -manual.xml로 끝나는 docbook 소스 파일을 처리해서 targetDirectory(위의 예에서는 target/docbook) 아래에 pdf로 만들어 준다.
덤으로 fop를 위한 폰트 매트릭을 만들어 주는 플러그인도 있다.
pom.xml 파일에 다음의 내용을 추가해주고:
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-fop-support</artifactId>
<!--
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
-->
<configuration>
<!-- <ansi>true</ansi> -->
<sourceDirectory>src/fonts/truetype</sourceDirectory>
<targetDirectory>src/fonts/metrics</targetDirectory>
</configuration>
</plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-fop-support</artifactId>
<!--
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
-->
<configuration>
<!-- <ansi>true</ansi> -->
<sourceDirectory>src/fonts/truetype</sourceDirectory>
<targetDirectory>src/fonts/metrics</targetDirectory>
</configuration>
</plugin>
mvn docbkx-fop-support:generate
위의 명령을 실행하면 sourceDirectory(위의 예에서는 src/fonts/truetype)안에 있는 *.ttf 파일들을 처리해서 targetDirectory(위의 예에서는 src/fonts/metrics)에 파일 이름 끝에 -metrics.xml을 붙인 메트릭 파일을 생성한다.
위에서는 코멘트 쳐둔 excutions절을 사용하면 빌드 과정에 포함시킬 수 있지만, 시간도 꽤 오래걸리는 작업이고, 큰 글꼴의 경우엔 out of memory도 잘 나고, 결정적으로 대부분의 한글 글꼴들의 경우엔 폰트 헤더의 인코딩 때문에 문제가 있어서 수작업으로 처리했다.(그래서 targetDirectory가 target/...이 아니고 src/...다)
덧. 수작업이라는 건 만들어진 메트릭 파일에서 <family-name>...</family-name>사이에 들어 있는 요상한 문자들을 좋은 편집기(절때 notepad나 eclipse같은 멍청한 편집기 쓰면 안된다!)로 열어서 알아보기 쉬운 영어로 고쳐주던가... <family-name> 태그 자체를 날려버리면 된다.
'hacking' 카테고리의 다른 글
Google AppEngine(Python) 삽질기 - NetBeans편 (개정판#1) (0) | 2009.09.29 |
---|---|
maven으로 docbook 다루기 - 좀 더 복잡하게~~ (0) | 2009.09.08 |
개발자의, 개발자를 위한, 개발자에 의한 소프트웨어 - "통합 개발 환경(IDE)" (9) | 2009.06.14 |
Google AppEngine(Python) 삽질기 (3) | 2009.05.26 |
가상 서버 호스팅 입주기 (4) | 2009.05.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- jQuery
- ***
- CSS
- 여행
- docker
- **
- Prototype
- DeveloperWorks
- 자전거
- 해남
- ****
- 장필순
- 노래
- Eclipse
- web
- ***1/2
- maven
- nodejs
- Java
- HTML5
- 자바스크립트
- webapp
- 영화
- 땅끝마을
- JavaScript
- 책
- Dojo
- Ajax
- 독후감
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함