* 다수의 .xml파일에서 pdf를 생성하는 경우

닥북 활용에 대한 모든 질문과 답변

* 다수의 .xml파일에서 pdf를 생성하는 경우

전체글글쓴이: haje01 » 2006-12-12 4:03 pm

새로 나온 배포본으로 본격적인 공부를 하고 있습니다.

Learning version control with Subversion이라는 책의
공개된 DocBook SVN저장소를 살펴보니, 상당히 많은
참고가 되었습니다.

당연한 일이겠지만, 책의 페이지수가 많다보니 다수의.xml
로 나누어서 편집되었더군요 ( intro.xml, chapter01.xml,
chapter02.xml .. 식으로 )

배포본에서 다수의 .xml파일에서 .pdf를 생성하려면 어떻게
하면 될지요..?

xslproc호출시의 인자를 조작하면 될것 같긴합니다만.. 잘
모르겠네요.. -_-;
haje01
 

전체글글쓴이: 류광 » 2006-12-12 7:12 pm

지금 현재 version control with Subversion 사이트가 다운된 것 같네요...

대체로 그런 경우 XML 엔티티를 이용합니다. 즉 각 장을 엔티티로 선언하고, 그 엔티티를 전체 <book> 의 적당한 위치에 삽입하는 것인데요. 결국은 하나의 큰 xml 파일을 만들어서 통채로 변환하는 것이라고 할 수 있습니다. 즉 XSLT 변환기는 그냥 하나의 XML 파일을 다루는 것일 뿐이고요(따라서 그냥 그 파일에 대해서만 XSLT 변환을 수행하면 됩니다). DocBook The Definitive Guide도 그런 방식입니다.

소스를 확인할 수 없어서 확실하지는 않지만, PDF 변환을 관장하는 스크립트(이를테면 makefile 등)를 살펴보면 최초로 xslt 변환이 적용되는 XML 파일을 발견할 수 있을 것입니다. 그 파일에 <!ENTITY 로 다른 XML 파일을 정의하는 부분들이 주욱 나온다면 위에서 말한 방식입니다.

그 외에 좀 더 나은 방식으로는 XInclude를 이용하는 것이 있는데요. http://docbook.or.kr/phpBB2/viewtopic.p ... t=Xinclude 를 참고하세요.

만일 다수의 XML에서 다수의 PDF를 생성하는 것이 문제라면.. 이는 단순 반복 작업으로 처리하거나 셸 또는 명령 프롬프트의 기능으로 처리할 수 있고요. make로도 가능하고, 또 닥북 모음집의 경우 루아 팩의 runlua foreach로도 가능합니다.
류광
사용자
 
전체글: 434
가입일: 2003-12-27 12:02 am

잘 됩니다.

전체글글쓴이: haje01 » 2006-12-15 5:08 pm

Version Control With Subversion 사이트는 이제 접속이 되는 군요..

알려주신 <!ENTITY.. 를 사용하는 방법으로 해결을 했습니다.

XInclude는 제가 잘못해서 그런지, 오류가 뜨더군요..

암튼 해결해서 기쁩니다.

많은 페이지의 문서를 작성할 경우 적절하게 .xml을 나누는 것도
기술이 될 듯합니다. pdf를 생성하여 확인하기 위해, 전체를 처음부터
생성한 다는 것은 비효율 적이겠지요..
haje01
 

전체글글쓴이: 류광 » 2006-12-15 5:50 pm

XInclude 안 되는게 새 모음집 때문일 수도 있으니 괜찮으시다면 파일들을 올려주세요~ 시험해 보겠습니다.
류광
사용자
 
전체글: 434
가입일: 2003-12-27 12:02 am

전체글글쓴이: 류광 » 2006-12-17 11:53 pm

간단히 테스트해봤는데, HTML은 잘 되는데 PDF 생성에서 fop가 오류를 내네요. 아주 간단한 파일들로 테스트한 것이니 뭔가 문제가 있는 것은 확실한 것 같습니다.

닥북 XSL 스타일시트가 잘못된 fo 파일을 만들어 낸 것인지 아니면 fop에 버그가 있는 것인지는 확실하지 않습니다... 좀 더 살펴보겠습니다.
류광
사용자
 
전체글: 434
가입일: 2003-12-27 12:02 am


다시 돌아감: 질문과 답변

접속 중인 사용자

이 포럼에 접속 중인 사용자: 접속한 회원이 없음 그리고 손님들 7 명

cron