EPUB

3 분 소요

1. EPUB이란?

EPUB(Electronic Publictaion)은 전자 출판 콘테츠 형식을 표준화하기 위해 IDPF에서 제정한 포맷입니다. 전 세계적으로 통용되고 있기 때문에 다양한 디바이스와 뷰어에서 사용되어지고 있습니다.

2. EPUB 파일 구조

EPUB파일의 확장자는 *.epub 이지만, 실제로는 ZIP 파일 형식으로 압축되어진 파일입니다. 그렇기 때문에 EPUB파일을 압축해제하면 다음과 같은 파일구조를 확인할 수 있습니다.

*: 필수 파일

- ePub
    - mimetype *
    - META_INF
        - container.xml *
    - OEBPS
        - Content.opf *
        - Toc.ncx *
        - Navigation.xhtml *
        - text
        - images
        - css
        - fonts

EPUB을 구성하는 필수 파일과 폴더의 의미는 다음과 같습니다.

  • mimetype: 압축파일이 EPUB 파일임을 알려주는 파일. ePub 파일의 최상위 폴더에 반드시 있어야 하며, 압축되어선 안 된다. 파일을 열어보면 application/epub+zip 이라는 내용이 적혀있다.
  • META_INF: EPUB 파일의 최상위 폴더에 반드시 있어야 하는 폴더. EPUB 파일의 기본적인 특성을 정의하는 파일을 포함한다.
  • container.xml: EPUB 뷰어에게 EPUB Publication의 경로를 알려주는 파일입니다.(루트 폴더(OEBPS)와 content.opf의 위치를 정의합니다.) 콘텐츠의 위치를 설정하는 파일이기 때문에 콘텐츠의 루트 파일 이라고 부릅니다.
  • OEBPS: 루트 폴더에 해당하며, 콘텐츠와 관련한 모든 파일이 든 폴더입니다.
  • Content.opf: EPUB 파일 안에 있는 모든 콘텐츠 파일의 목록, 뷰어가 읽어야 하는 파일의 순서 정보를 정의합니다.
  • Toc.ncx: 콘텐츠의 목차 정보를 담고 있다. EPUB3를 지원하는 뷰어에서는 필요하지 않지만 EPUC2만을 지원하는 뷰어에서는 반드시 있어야 합니다.(EPUB3 스펙으로 작성된 EPUB을 EPUB2 스펙만을 지원하는 뷰어에서 목차를 보이게 하기 위해서 Toc.ncx 파일을 생성하는 것이 좋습니다.)
  • Navigation.xhtml: Toc.ncx 처럼 목차 정보를 정의힙니다. Toc.ncx와 달리 Navigation.xhtml은 HTML 파일이기 때문에 뷰어에서 바로 불러올 수 있고 해당 목차로 링크가 되어 있어 이동도 가능하다. EPUB 3 파일에 반드시 있어야 합니다.

3. EPUB 파일의 XML 요소

3.1. 패키지 도큐먼트(content.opt)

패키지 도큐먼트는 EPUB 출판물의 메타 데이터 및 콘텐츠의 구성 및 정렬 순서를 기술한 opt 파일입니다.

XML 요소는 다음과 같이 분류됩니다.

  • metadata: 서지정보를 기재
  • manifest: 파일 항목을 기재
  • spine: 출판물의 구성 순서를 기재
<?xml version="1.0" encoding="utf-8" ?>
<package unique-identifier="uuid_id" version="2.0" xmlns="http://www.idpf.org/2007/opf">
  <metadata>
    ...
  </metadata>
  <manifest>
    ...
  </manifest>
  <spine toc="ncx">
    ...
  </spine>
  <guide>
    <reference href="Text/titlepage.xhtml" title="Cover" type="cover"/>
  </guide>
</package>

3.1.1. package

패키지 도큐먼트는 package 태그를 중심으로 여러 개의 자식요소로 구성되어 있습니다.

3.1.1.1. package 태그 선언 예시

<package unique-identifier="uuid_id" version="2.0" xmlns="http://www.idpf.org/2007/opf">

3.1.1.2. 속성

속성 필수 여부 설명
version 필수 EPUB 버전을 명시
unique-identifier 필수 출판물을 식별값.
metadata의 자식요소인 dc:identifier의 id 속성에 unique-identifier 값을 설정하여 고유 식별 도서 값을 입력합니다.

3.1.2. metadata

metadata 요소는 pakage 태그의 자식 요소 입니다. metadata 요소는 서지 정보(도서명, 식별자, 사용 언어, 발행일, 저자명, 출판사명 등)을 선언해야 합니다.

서지 정보는 <dc:XXX></dc:XXX> 와 같은 형식으로 metadata 하위에 추가합니다. dc 는 더블린 코어(Dublin Core)의 약자로 서지 정보와 같은 메타 데이터를 표현하기 위해서 만들어진 표쥰 규격입니다.

3.1.2.1. dc 요소 선언 예시

<dc:요소명>내용</dc:요소명>

3.1.2.2. 요소

요소 필수 여부 설명
dc:identifier 필수 출판물의 식별자입니다. package 태그의 unique-identifier 요소로 부터 참조되고 사용됩니다.
dc:title 필수 출판물의 도서명입니다.
dc:language 필수 출판물에서 사용하는 언어를 RFC5646 형식으로 선언합니다.
(ex. 한국: ko)
dc:publisher 옵션 출판사를 기재합니다.

3.1.3. manifest

출판물을 구성하고 있는 모든 이미지 파일이나 xhtml를 설명합니다. 사용하는 모든 파일에 대해 item 자식 요소를 선언하고 식별자를 선언하여 참조될 수 있도록 합니다.

TIP: item 요소에서 열거하는 콘텐츠 도큐먼트의 순서는 중요하지 않습니다. 콘텐츠 정렬 순서는 spine 항목에서 정의되기 때문입니다.

3.1.3.1. item 요소 선언 예시

<item id="식발자" properties="도큐먼트 속성" href="파일 경로" media-type="미디어 타입"

3.1.3.2. item 요소

요소 필수 여부 설명
id 필수 item요소에서 지정되는 파일의 식별자
herf 필수 파일의 위치(상대 주소)
media-type 필수 파일의 미디어 타입을 기재합니다. 사용할 수 있는 타입은 EPUB 3 Core Media Types 에서 확인할 수 있습니다.
properties   파일의 부가적인 특징을 기재합니다.

3.1.3.3. item 요소의 Properties 요소

요소 필수 여부 설명
cover-image 옵션 표지 이미지 선언
mathnl 옵션 EPUB 콘텐츠 도큐먼트에서 MathML 마크업을 사용
nav 필수 EPUB 네비게이션 도큐먼트 선언
remote-resource 옵션 외부 리소스 참조
scripted 옵션 스트립트가 사용되고 있음을 선언
svg 옵션 SVG가 사용되고 있음을 선언

3.1.4. spine

출판물의 콘텐츠 정렬 순서를 설명합니다. manifest 항목은 EPUB 출판문에서 사용되고 있는 모든 리소스를 기재해야 하지만 spine 항목에서는 출판물의 내용을 구성하는 XHTML 파일만 열거합니다.

3.1.4.1. itemref 요소 선언 예시

<itemref idref="manifest 항목으로 지정한 식별자" liner="yes"/>

3.1.4.2. Itemref 요소

요소 필수 여부 설명
idref 필수 파일의 참조 식별자를 설정합니다.(manifest 항목의 item 속성에서 사용한 식별자를 참조)
linear 옵션 순서에 따라 구성되는 내용의 일부인지를 설정(yes 또는 no)
id 옵션 XML 요소의 고유 ID
properties 옵션 페이지의 방향 표시를 선언 (page-spread-left 또는 page-spread-right)

3.2. 네비게이션 도큐먼트

EPUB Publications에서 사용되는 네비게이션 도큐먼트는 EPUB 뷰어에서 목차를 가시화 할때 사용됩니다. HTML5의 nav태그를 사용하여 EPUB의 목차 정보를 정의할 수 있습니다.

EPUB2 스펙에서는 NCX 도큐먼트(toc.ncx)로 목차를 정의하지만, EPUB3 에서는 XHTML 도큐먼츠에서 정의합니다.

3.2.1. nav 요소

네비게이션 도큐먼트는 HTML5로 표현할 수 있습니다. 목차 정보는 단순히 표시하는 용도에 그치지 않고, EPUB 출판물의 구조를 파악할 수 있고 목차의 해당 페이지로 이동하는 링크도 제공할 수 있습니다.

3.2.2. epub:type 종류

타입 필수 여부 설명
toc 필수 일반적인 목차를 정의할 때 사용합니다.
page-list 옵션 페이지 넘김 정보를 나타내기 위해 사용합니다. (종이책으로 출판된 도서를 전자책으로 만들 때, 종이책에서 사용되던 페이지 번호를 전자책에서도 참조할 때 사용)
landmarks 옵션 도서의 구조를 보여주기 위해 사용합니다.

toc

간행물의 목차를 작성합니다.

  • navPoint: 목차 항목에 id를 부여하고 playOrder 로 순서를 작성합니다.
  • navLabel: text를 사용하여 해당 페이지의 제목을 작성
  • content: 목차 페이지의 경로

태그:

카테고리:

업데이트:

댓글남기기