돈 안 들이고 PDF 파일 만들기 2장 FO
PDF 만들기 위해 우선 FO 파일을 하나 만듭시다. 아... 여기서 FO는 Formatting Object의 약자입니다. 이 형식의 파일을 이용해서 PDF 파일을 만들 수 있습니다.
foe.fo
<?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body margin="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block> Hi </fo:block> </fo:flow> </fo:page-sequence> </fo:root>
음... 너무 긴가요? 복사 / 붙이기라는 좋은 방법이 있습니다.
이 내용을 한 줄 한 줄 다 설명하면 지루해질 테니 일단 하나만 짚고 넘어가겠습니다.
fo:block 와 /fo:block 사이에 있는 Hi 라는 문자열이 pdf 파일로 변환되었을 때 나타날 내용입니다.
지금까지는 메모장(또는 vi )만으로 가능한 작업이었습니다만 fo 파일을 pdf 파일로 변환하기 위해 필요한 프로그램이 있으니 이름하여 fop (Formatting Object Processor)입니다. 이런 프로그램을 무료로 구할 수 없다면 이 강좌의 제목이 거짓말이 되겠지만 다행스럽게도 그런 프로그램을 무료로 구할 수 있기에 이 강좌의 제목을 유지할 수 있습니다.
이제 프로그램을 받고 설치하는 방법 알려드립니다.
http://xmlgraphics.apache.org/fop/ 접속합니다. 영어에 대해 어려움을 느끼시는 분은 이 곳 접속하자마자 헉. 죄다 영어잖아? 이러시면서 바로 창을 닫으실지 모르겠습니다만 조금만 참으셔요. 최대한 쉽게 설명해 드릴테니...
http://xmlgraphics.apache.org/fop/ 에서 Download 클릭.
Binary Download 클릭.
FOP Distribution mirror 클릭(mirror는 그대로 번역하면 거울이 되겠으나, 똑같은 파일을 한 곳에만 두고 전세계에서 접속하면 그곳에 부하가 걸리고 접속지연등등의 문제가 발생할 것이므로 전 세계 곳곳에 복사본을 만들어 놓은 것을 말함)
처음에 나타난 http://apache.tt.co.kr/xmlgraphics/fop 를 클릭합니다.
(제가 접속한 시점에는 이 사이트가 제일먼저 나왔지만 지역 또는 시간에 따라 다른 곳이 먼저 나올 수도 있겠죠.)
이 곳 접속이 잘 안 되면 목록 중 다른 것으로 접속하면 됩니다.
binaries/ 를 클릭.
fop-0.95-bin.zip 클릭합니다.
c:\fop\ 에 압축을 풉니다.(저도 리눅스를 사용하긴 합니다만 아직까지는 엠에스위도 사용자가 많아서 엠에스윈도를 기준으로 진행합니다. 리눅스라고 특별히 다른 것 없겠습니다. 압축 풀 위치는 fop가 아니고 다른 곳에 풀어도 됩니다.단, 파일을 풀고 어? 내가 어디다 저장했지? 하고 잊어버리진 마세요.)
이제 프로그램도 설치했으니 변환을 해 봅시다.
fop foe.fo foe.pdf
이렇게 하시면 fo 파일이 pdf 파일로 변환된 것을 확인하실 수 있습니다. 이번엔 한글도 들어간 fo 파일을 만들어 봅시다.
처음에 나온 파일 foe.fo에
<fo:block> 안녕 </fo:block>
이렇게 몇 줄 더 넣어봅시다. 그럼 아래와 같은 내용이 되겠죠.
fok.fo
<?xml version="1.0" encoding="UTF-8"?> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body margin="1cm"/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block> Hi </fo:block> <fo:block> 안녕 </fo:block> </fo:flow> </fo:page-sequence> </fo:root>
이제 변환을 하기 위해
fop fok.fo fok.pdf
이렇게 해 봅시다.
엉? 이게 뭐야... 영어는 제대로 나오는데 한글이 안 나오네...
이에 대한 해결책은 다음에 알려드리겠습니다.
댓글 달기