돈 안 들이고 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

이렇게 해 봅시다.
엉? 이게 뭐야... 영어는 제대로 나오는데 한글이 안 나오네...
이에 대한 해결책은 다음에 알려드리겠습니다.

Forums: 

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.